Submission #1273579

#TimeUsernameProblemLanguageResultExecution timeMemory
1273579mkkkkkkkkMessage (IOI24_message)C++20
0 / 100
188 ms736 KiB
#include "message.h" #include <bits/stdc++.h> using namespace std; void sett(vector<bool>& vec,vector<int>& vecc,vector<bool>& vec2) { for(int i=0;i<31;i++) vec2.push_back(0); for(int i=0;i<vec.size();i++) { vec2[vecc[i]]=vec[i]; } } void send_message(std::vector<bool> M, std::vector<bool> C) { vector<int> vecc; for(int i=0;i<C.size();i++) { vector<bool> vec; for(int i=0;i<31;i++) vec.push_back(C[i]); send_packet(vec); if(C[i]==0) vecc.push_back(i); } int br=M.size(); vector<bool> vec2; for(int i=0;i<16;i++,br=br>>1) { vec2.push_back(br&1); } vector<bool> temp; sett(vec2,vecc,temp); send_packet(temp); vec2.clear(); temp.clear(); for(int i=0;i<M.size();i++) { vec2.push_back(M[i]); if(i%16==15 || i==M.size()-1) { sett(vec2,vecc,temp); send_packet(temp); vec2.clear(); temp.clear(); } } } std::vector<bool> receive_message(std::vector<std::vector<bool>> R) { vector<int> vecc; for(int i=0;i<31;i++) { int cnt=0; for(auto it : R[i]) { if(it==0) cnt++; } if(cnt>=16) vecc.push_back(i); } int sz=0; for(int i=0;i<16;i++) { sz+=(R[31][vecc[i]])*pow(2,i); } vector<bool> res; for(int i=32;i<R.size();i++) { for(int j=0;j<16;j++) { if(sz%16!=0 && j==sz%16) break; int pos=vecc[j]; res.push_back(R[i][pos]); } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...