#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |