Submission #1243576

#TimeUsernameProblemLanguageResultExecution timeMemory
1243576alexander707070Message (IOI24_message)C++20
0 / 100
369 ms852 KiB
#include<bits/stdc++.h> #include "message.h" using namespace std; namespace Alice{ vector<int> good; void send(int x){ vector<bool> mes; for(int i=0;i<31;i++){ mes.push_back(x%2); x/=2; } send_packet(mes); } }; void send_message(vector<bool> M, vector<bool> C){ using namespace Alice; good.clear(); int maskgood=0; for(int i=0;i<31;i++){ if(!C[i]){ good.push_back(i); maskgood^=(1<<i); } } for(int i=0;i<5;i++){ if(good[0]&(1<<i))send(maskgood); else send(0); } vector<bool> mess(1026-int(M.size())-1,0); mess.push_back(1); for(auto b:M)mess.push_back(b); int pt=0,to=0; for(int i=0;i<30;i++){ vector<bool> curr(31,0); if(pt==good[0])pt++; curr[good[0]]=!C[pt]; for(int f=1;f<16;f++){ curr[good[f]]=mess[to]; to++; } send_packet(curr); pt++; } for(int i=0;i<36;i++){ vector<bool> curr(31,0); for(int f=0;f<16;f++){ curr[good[f]]=mess[to]; to++; } send_packet(curr); } } namespace Bob{ vector<int> good; }; vector<bool> receive_message(vector< vector<bool> > R){ using namespace Bob; good.clear(); int pos=0; for(int i=0;i<5;i++){ int bal=0; for(int f=0;f<31;f++){ if(R[i][f])bal++; else bal--; } if(bal>0)pos^=(1<<i); } good.push_back(pos); int pt=0; for(int i=0;i<30;i++){ if(pt==pos)pt++; if(R[5+i][pos])good.push_back(i); pt++; } vector<bool> mess; for(int i=0;i<30;i++){ for(int f=1;f<16;f++){ mess.push_back(R[5+i][good[f]]); } } for(int i=0;i<36;i++){ for(int f=0;f<16;f++){ mess.push_back(R[5+i][good[f]]); } } vector<bool> ans; bool ok=false; for(int i=0;i<mess.size();i++){ if(ok)ans.push_back(mess[i]); if(mess[i])ok=true; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...