QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#559643#9237. MessageArgharizaCompile Error//C++142.0kb2024-09-12 07:57:272024-09-12 07:57:28

Judging History

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

  • [2024-09-12 07:57:28]
  • 评测
  • [2024-09-12 07:57:27]
  • 提交

answer

#include "message.h"
#include <bits/stdc++.h>
#define eb emplace_back
#define mt make_tuple
#define mp make_pair
#define fi first
#define se second

using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
typedef vector<bool> arr;

namespace A {
	const int N = 66;
	const int M = 31;
	int vs[N][M];
	void send_message(arr M, arr C) {
		int len = M.size();
		M.resize(1025, 0);
		for (int i = len + 1; i < 1025; i++) M[i] = 1;
		vector<arr> res(66, arr(31, 0));
		for (int i = 0; i < 31; i++) {
			if (C[i]) continue;
			int p = (i + 1) % 31;
			while (C[p]) p = (p + 1) % 31;
			int dis = (p - i + 31) % 31;
			for (int k = 0; k < dis; k++)
				vs[k][i] = 1, res[k][i] = (k == dis - 1);
		}
		int p = 0;
		for (int i = 0; i < 31; i++) {
			if (C[i]) continue;
			for (int j = 0; j < 66; j++)
				if (!vs[j][i]) res[j][i] = M[p++];
		}
		for (arr i : res) send_packet(i);
	}
}

void send_message(arr M, arr C) {
	A::send_message(M, C);
}

namespace B {
	const int N = 66, M = 31;
	int g[M], vs[N][M];
	
	arr receive_message(vector<arr> R) {
		for (int i = 0; i < 31; i++) {
			for (int j = 0; j < 31; j++) {
				if (R[j][i]) {
					g[i] = (i + j + 1) % 31;
					break;
				}
			}
		}
		arr C(31, 1);
		for (int i = 0; i < 31; i++) {
			int u = i; vector<int> c;
			arr vs(31, 0);
			while (!vs[u]) vs[u] = 1, c.eb(u), u = g[u];
			if (c.size() == 16) {
				for (int u : c) C[u] = 0;
				break;
			}
		}
		for (int i = 0; i < 31; i++) {
			if (C[i]) continue;
			int p = (i + 1) % 31;
			while (C[p]) p = (p + 1) % 31;
			int dis = (p - i + 31) % 31;
			for (int k = 0; k < dis; k++)
				vs[k][i] = 1;
		}
		arr res(1025);
		int p = 0, len = 1025;
		for (int i = 0; i < 31; i++) {
			if (C[i]) continue;
			for (int j = 0; j < 66; j++)
				if (!vs[j][i]) res[p++] = R[j][i];
		}
		while (res[len - 1]) len--; 
		len--, res.resize(len);
		return res;
	}
}

arr receive_message(vector<arr> R) {
  	return B::receive_message(R);
}

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