Submission #1298272

#TimeUsernameProblemLanguageResultExecution timeMemory
1298272tuandq메시지 (IOI24_message)C++20
0 / 100
189 ms736 KiB
#include <bits/stdc++.h> using namespace std ; vector<bool> send_packet(vector<bool> A); void send_message(vector<bool> M, vector<bool> C) { vector<int> idx ; for(int i = 0; i < 31; i ++) { if(!C[i]) idx.emplace_back(i) ; vector<bool> pack(31, C[i]) ; send_packet(pack) ; } int s = (int)M.size() - 1 ; reverse(M.begin(), M.end()) ; for(int i = 0; i < 10; i ++) { M.emplace_back((bool)(s >> i & 1)) ; } reverse(M.begin(), M.end()) ; for(int i = 0; i < M.size();) { vector<bool> pack(31, false) ; int x = min((int)M.size() - i, 16) ; for(int j = 0; j < x; j ++) { pack[idx[j]] = M[i] ; ++ i ; } send_packet(pack) ; } } vector<bool> receive_message(vector<vector<bool>> R) { vector<int> idx ; for(int i = 0; i < 31; i ++) { vector<bool> &pack = R[i] ; vector<int> cnt(2, 0) ; for(int j = 0; j < 31; j ++) ++ cnt[(int)pack[j]] ; if(cnt[0] > cnt[1]) idx.emplace_back(i) ; } int numSz = 0 ; for(int i = 0; i < 10; i ++) { numSz = numSz << 1 | ((int)R[31][i]) ; } ++ numSz ; vector<bool> res ; int iter = 9, num = 31 ; for(; numSz > 0; numSz --) { if(++ iter == 16) iter = 0, ++ num ; res.emplace_back(R[num][idx[iter]]) ; } return res ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...