Submission #1311917

#TimeUsernameProblemLanguageResultExecution timeMemory
1311917eri16Message (IOI24_message)C++20
0 / 100
188 ms752 KiB
#include <bits/stdc++.h> #include "message.h" using namespace std; using ll = long long; void send_message(vector<bool> M, vector<bool> C){ ll n = C.size(); vector <bool> truth(31,true); vector <bool> lie(31,false); vector <ll> index; for (int i=0; i<31; i++){ if (C[i]){send_packet(lie);} else{send_packet(truth);index.push_back(i);} } vector <bool> tm = lie; ll kk = M.size(); for (int j=0; j<16; j=j+1){ if (kk%16>0){ kk--; tm[index[j]]=true; } } send_packet(tm); for (int i=0; i<M.size(); i=i+16){ vector <bool> ans = lie; for (int j=0; j<16 && i+j<M.size(); j=j+1){ if (M[i+j]){ ans[index[j]]=true; } } send_packet(ans); } } vector<bool> receive_message(vector<vector<bool>> R){ vector <ll> idx; for (int i=0; i<31; i++){ ll sm = 0; for (int j=0; j<31; j++){ if (R[i][j]){sm++;} } if (sm>=16){idx.push_back(i);} } vector <bool> ans; ll rem=0; for (int i=0; i<16; i++){ if (R[31][idx[i]]){rem++;} } for (int i=31; i<R.size()-1; i++){ for (int j=0; j<16; j=j+1){ if (R[i][idx[j]]){ans.push_back(true);} else{ans.push_back(false);} } } for (int j=0; j<rem; j=j+1){ if (R[R.size()-1][idx[j]]){ans.push_back(true);} else{ans.push_back(false);} } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...