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