Submission #1202719

#TimeUsernameProblemLanguageResultExecution timeMemory
1202719bynixMessage (IOI24_message)C++20
0 / 100
373 ms856 KiB
#include "bits/stdc++.h" #include "message.h" using namespace std; void send_message(vector<bool> M, vector<bool> C) { vector<int> aPos; for (int i = 0; i < 31; i++) if (!C[i]) aPos.push_back(i); vector<bool> z(31, 0), o(31, 1); map<int, vector<bool>> p = {{0, z}, {1, o}}; int first = aPos[0]; for (int i = 0; i < 5; i++) send_packet(p[1 & (first >> i)]); for (int i = 0; i < 5; i++){ vector<bool> pkt(31, 0); int k = 0; for (int j = 0; j < 31; j++) if (!C[j]) { pkt[j] = (aPos[k + 1] >> i) & 1; k++; if (k == 15) break; } send_packet(pkt); } for (int i = 0; i < 1024; i += 16){ vector<bool> pkt(31, 0); int k = i; for (int j = 0; j < 16; j++) { pkt[aPos[j]] = M[k]; k++; } send_packet(pkt); } } vector<bool> receive_message(vector<vector<bool>> R){ vector<int> aPos(16, 0); int first = 0; for (int i = 0; i < 5; i++){ int z = 0; for (int j = 0; j < 31; j++) z += R[i][j] == 0; first |= (z <= 15) << i; } aPos[0] = first; for (int k = 1; k < 16; k++) for (int j = 5; j < 10; j++) aPos[k] |= R[j][aPos[k - 1]] << (j - 5); vector<bool> M; for (int j = 10; j < 74; j++) for (auto &e: aPos) M.push_back(R[j][e]); return M; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...