Submission #1210711

#TimeUsernameProblemLanguageResultExecution timeMemory
1210711AvianshMessage (IOI24_message)C++20
29.32 / 100
540 ms860 KiB
#include "message.h" #include <bits/stdc++.h> using namespace std; void send_message(vector<bool> M, vector<bool> C) { for(bool b : C){ vector<bool> A(31, b); send_packet(A); } //C has been sent. vector<int>inds; for(int i = 0;i<31;i++){ if(C[i]==0){ inds.push_back(i); } } assert(inds.size()==16); int i = 0; vector<bool>msg(31,0); for(bool b : M){ if(i==16){ send_packet(msg); i=0; msg=vector<bool>(31,0); } msg[inds[i]]=b; i++; } if(i){ send_packet(msg); msg=vector<bool>(31,0); for(int j = 0;j<i;j++){ msg[inds[j]]=1; } send_packet(msg); } else{ msg=vector<bool>(31,1); send_packet(msg); } } vector<bool> receive_message(vector<vector<bool>> R) { vector<bool>C; for(int i = 0;i<31;i++){ int c = 0; for(bool i : R[i]){ c+=i; } if(c>=16){ C.push_back(1); } else{ C.push_back(0); } } vector<bool>ans; vector<int>inds; for(int i = 0;i<31;i++){ if(C[i]==0){ inds.push_back(i); } } for(int i = 31;i<R.size()-2;i++){ for(int j : inds){ ans.push_back(R[i][j]); } } int cn = 0; for(int j : inds){ cn+=R[R.size()-1][j]; } for(int i = 0;i<cn;i++){ ans.push_back(R[R.size()-2][inds[i]]); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...