Submission #1315329

#TimeUsernameProblemLanguageResultExecution timeMemory
1315329ezzzay메시지 (IOI24_message)C++17
0 / 100
365 ms804 KiB
#include "message.h" #include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back void send_message(vector<bool> M, vector<bool> C) { int x = -1; for(int i=0;i<31;i++){ if(C[i]==0){ x=i; break; } } for(int i=0;i<5;i++){ vector<bool> v(31); bool b = (x>>i)&1; for(int j=0;j<31;j++) v[j]=b; send_packet(v); } vector<bool> msg; int S = M.size(); int z = 1025 - S - 1; for(int i=0;i<z;i++) msg.pb(0); msg.pb(1); for(bool b:M) msg.pb(b); int ptr = 0; for(int i=0;i<31;i++){ vector<bool> v(31); v[x] = C[i]; for(int j=0;j<31 && ptr<msg.size();j++){ if(j==x) continue; if(C[j]==0){ v[j]=msg[ptr++]; } } send_packet(v); } while(ptr < msg.size()){ vector<bool> v(31); for(int j=0;j<31 && ptr<msg.size();j++){ if(C[j]==0){ v[j]=msg[ptr++]; } } send_packet(v); } } vector<bool> receive_message(vector<vector<bool>> R) { int x=0; for(int i=0;i<5;i++){ int c=0; for(int j=0;j<31;j++) c+=R[i][j]; if(c>=16) x |= (1<<i); } vector<bool> C(31); for(int i=0;i<31;i++){ C[i]=R[5+i][x]; } vector<bool> msg; for(int i=5;i<R.size();i++){ for(int j=0;j<31;j++){ if(j!=x && C[j]==0){ msg.pb(R[i][j]); } } } int pos=0; while(pos<msg.size() && msg[pos]==0) pos++; pos++; vector<bool> M; for(int i=pos;i<msg.size();i++) M.pb(msg[i]); return M; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...