QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#554121#9237. MessageXun_xiaoyaoCompile Error//C++141.6kb2024-09-09 07:16:172024-09-09 07:16:18

Judging History

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

  • [2024-09-09 07:16:18]
  • 评测
  • [2024-09-09 07:16:17]
  • 提交

answer

#include <bits/stdc++.h>
#include "message.h"
using namespace std;

namespace Aisha{
	vector<vector<bool>>R;
	vector<bool> M_;
	vector<bool>::iterator it;
	int nxt[31];
	void send_message(vector<bool> M,vector<bool> C)
	{
		vector<bool>().swap(M_),vector<vector<bool>>().swap(R);

		M_.resize(1025);
		R.resize(66,vector<bool>(31));
		for(int i=0,lm=M.size();i<lm;i++) M_[i]=M[i];
		M_[M.size()]=1;

		for(int i=0;i<31;i++) if(!C[i])
		{
			nxt[i]=1;
			while(C[(i+nxt[i])%31]) nxt[i]++;
			R[nxt[i]-1][i]=1;
		}

		it=M_.begin();
		for(int i=0;i<66;i++) for(int j=0;j<31;j++) if(!C[j]&&i>=nxt[j])
			R[i][j]=*it,it++;
		for(int i=0;i<66;i++) send_packet(R[i]);
	}
}

namespace Basma{
	int nxt[31],p[31];
	int C[31];
	vector<bool> M;
	vector<bool>::iterator it;
	vector<bool> receive_message(vector<vector<bool>> R)
	{
		M.resize(1025);it=M.begin();

		for(int i=0;i<31;i++)
		{
			nxt[i]=1;C[i]=1;
			while(nxt[i]<31&&!R[nxt[i]-1][i]) nxt[i]++;
			p[i]=(i+nxt[i])%31;
		}

		bool abl=true;
		for(int i=0;i<31&&abl;i++) for(int cnt=1,cur=p[i];cnt<=16;cnt++,cur=p[cur])
		if(cur==i)
		{
			if(cnt!=16) break;
			abl=false;
			C[i]=0;
			for(int cur=p[i];cur!=i;cur=p[cur]) C[cur]=0;
			break;
		}

		for(int i=0;i<66;i++) for(int j=0;j<31;j++) if(!C[j]&&i>=nxt[j])
			*it=R[i][j],it++;

		while(*(M.end()-1)==0) M.pop_back();
		M.pop_back();
		return M;
	}
}

void send_message(vector<bool> M,vector<bool> C){Aisha::send_message(M,C);}
vector<bool> receive_message(vector<vector<bool>> R){return Basma::receive_message(R);}

详细

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) {
      |             ^~~