#include "message.h"
#include <bits/stdc++.h>
using namespace std;
/*void send_message(vector<bool> m, vector<bool> c){
int s = m.size() , n = c.size();
vector<bool> caux(n);
for(int i = 0; i < n-1; i++){
if(c[i] == 0){
caux[i] = c[i+1];
}
}
}
vector<bool> receive_message(vector<vector<bool>> R){
}*/
void send_message(vector<bool> m, vector<bool> c) {
int s = m.size() , n = c.size();
vector <bool> nbool(31);
bitset <16> ns (s);
int j = 15;
for(int i = 0; i < 31; i++){
if(c[i] == 0){
nbool[i] = ns[j];
j--;
}
}
send_packet(nbool);
for(int i = 0; i < s; i++){
if(c[i] == 1){
vector<bool> aux (31 , 1);
send_packet(aux);
}
else{
vector<bool> aux (31 , 0);
send_packet(aux);
}
}
for(int v = 0; v < s;){
vector<bool> aux(31);
int x;
for(x = v; x < s; x++){
for(int i = 0; i < 31; i++){
if(c[i] == 0){
aux[i] = m[x];
}
}
send_packet(aux);
}
v += x+1;
}
return;
}
vector<bool> receive_message(vector<vector<bool>> R) {
vector<bool> ans , caux , nbool;
nbool = R[0];
int n = 0;
for(int i = 1; i <= 31;i++){
int ones = 0 , ceros = 0;
for(int j = 0; j < 31; j++){
if(R[i][j] == 1) ones++;
else ceros++;
}
if(ones > ceros) caux.push_back(1);
else caux.push_back(0);
}
for(int i = 0; i < caux.size(); i++){
if(caux[i] == 0){
n += pow(2 , i);
}
}
for(int j = 32; j < R.size(); j++){
for(int i = 0; i < n; i++){
if(caux[i] == 0){
ans.push_back(R[j][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... |