Submission #1245480

#TimeUsernameProblemLanguageResultExecution timeMemory
1245480edga1Message (IOI24_message)C++20
30.33 / 100
526 ms856 KiB
#include <bits/stdc++.h> #include "message.h" #define pb push_back using namespace std; void send_message(vector<bool> M, vector<bool> C){ for(int i=0; i<30; i++){ if(C[i]==0) send_packet(vector<bool> (31,0)); else send_packet(vector<bool> (31,1)); } vector<int> p(16); int pp=0; for(int i=0; i<31; i++){ if(C[i]==0){ p[pp]=i; pp++; } } int s=M.size(); int atl=s%16; atl--; if(atl==-1) atl=15; vector<bool> v(31,0); v[p[atl]]=1; send_packet(v); pp=0; while(pp<s){ vector<bool> A(31,0); for(int i=0; i<16; i++){ if(pp>=s) break;; A[p[i]]=M[pp]; pp++; } send_packet(A); } return; } vector<bool> receive_message(vector<vector<bool>> R) { vector<bool> C(31,0); int pa=0,ne=0; for(int i=0; i<30; i++){ int v=0,n=0; for(int j=0; j<31; j++){ if(R[i][j]==1) v++; else n++; } if(v>n){ C[i]=1; ne++; }else{ C[i]=0; pa++; } } if(pa==15) C[30]=0; else C[30]=1; int last; for(int i=0; i<31; i++){ if(R[30][i]==1 && C[i]==0){ last=i; break; } } vector<bool> B; for(int i=31; i<R.size()-1; i++){ for(int j=0; j<31; j++){ if(C[j]==0){ B.pb(R[i][j]); } } } for(int i=0; i<=last; i++){ if(C[i]==0){ B.pb(R[R.size()-1][i]); } } return B; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...