QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#563516#9237. Messagedonghanwen1225Compile Error//C++141.2kb2024-09-14 13:25:222024-09-14 13:25:22

Judging History

你现在查看的是最新测评结果

  • [2024-09-14 13:25:22]
  • 评测
  • [2024-09-14 13:25:22]
  • 提交

answer

#include<iostream>
#include<cstdio>
#include<vector> 
using namespace std;
vector<bool> send_packet(vector<bool> A);
void send_message(vector<bool> M,vector<bool> C)
{
	int S=M.size();
	vector<int> x;x.resize(31);
	int las=-1,fr=-1;
	for(int i=0;i<31;i++)
		if(C[i]==0)
		{
			if(fr==-1) fr=i;
			if(las!=-1) x[las]=i-las;
			las=i;
		}
	x[las]=(fr+31-las)%31;
	int cur=0;
	for(int i=1;i<=66;i++)
	{
		vector<bool> me;me.resize(31);
		for(int j=0;j<31;j++)
		{
			if(C[j]==1) me[j]=0;
			else
			{
				if(i<x[j]) me[j]=0;
				else if(i==x[j]) me[j]=1;
				else me[j]=(cur<S?M[cur]:(cur==S?0:1)),cur++;
			}
		}
		send_packet(me);
	}
}
vector<bool> receive_message(vector<vector<bool>> R)
{
	vector<bool> gm,rm,ok;vector<int> x;
	x.resize(31);ok.resize(31);gm.resize(1025);
	for(int i=0;i<66;i++)
		for(int j=0;j<31;j++)
			if(!x[j]&&R[i][j]) x[j]=i+1;
	for(int i=0;i<31;i++)
	{
		int c=i;for(int j=1;j<=16;j++) c=(c+x[c])%31;
		if(c==i)
		{
			for(int j=1;j<=16;j++) ok[c]=1,c=(c+x[c])%31;
			break;
		}
	}
	int cur=0;
	for(int i=0;i<66;i++)
		for(int j=0;j<31;j++)
			if(ok[j])
				if(i+1>x[j]) gm[cur++]=R[i][j];
	while(gm[cur-1]==1) cur--;
	for(int i=0;i<cur;i++) rm.push_back(gm[i]);
	return rm;
}

Details

stub.cpp: In function ‘int {anonymous}::sz(const C&)’:
stub.cpp:27:52: error: ‘size’ is not a member of ‘std’; did you mean ‘size_t’?
   27 | template<class C> int sz(const C& c) { return std::size(c); }
      |                                                    ^~~~
      |                                                    size_t
stub.cpp: In function ‘void {anonymous}::write_int_array(const int*, int)’:
stub.cpp:70:13: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’
   70 |         if (int ret = fwrite(arr, sizeof(int), len, fout); len != ret) {
      |             ^~~
stub.cpp: In function ‘void {anonymous}::read_int_array(int*, int)’:
stub.cpp:105:13: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’
  105 |         if (int ret = fread(arr, sizeof(int), len, fin); len != ret) {
      |             ^~~