제출 #1217325

#제출 시각아이디문제언어결과실행 시간메모리
1217325HappyCapybaraMessage (IOI24_message)C++20
0 / 100
1247 ms590244 KiB
#include "message.h" #include<bits/stdc++.h> using namespace std; void send_message(vector<bool> M, vector<bool> C){ vector<int> b; for (int i=0; i<31; i++){ if (!C[i]) b.push_back(i); } vector<vector<bool>> R(66, vector<bool>(31)); int cur = -1; for (int i=0; i<16; i++){ for (int j=0; j<66; j++){ if (j < (b[(i+1)%16]-b[i]-1+31)%31) R[j][b[i]] = 0; else if (j == (b[(i+1)%16]-b[i]-1+31)%31) R[j][b[i]] = 1; else if (0 & ++cur) ; else if (cur < M.size()) R[j][b[i]] = M[cur]; else if (cur == M.size()) R[j][b[i]] = 1; else R[j][b[i]] = 0; } } for (int i=0; i<66; i++) send_packet(R[i]); } vector<bool> receive_message(vector<vector<bool>> R){ vector<int> a(31, 1); for (int i=0; i<31; i++){ for (int j=0; j<66; j++){ if (R[j][i]){ a[i] = j+1; break; } } a[i] = (i+a[i]) % 31; } vector<int> b; for (int i=0; i<16; i++){ b = {i}; int cur = a[i]; while (cur != i){ b.push_back(cur); cur = a[cur]; } if (b.size() == 16) break; } vector<bool> M; for (int i=0; i<16; i++){ for (int j=(b[(i+1)%16]-b[i]+31)%31; j<66; j++) M.push_back(R[j][b[i]]); } while (!M.back()) M.pop_back(); M.pop_back(); return M; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...