#include "message.h"
#include <bits/stdc++.h>
using namespace std;
void send_message(vector<bool> s, vector<bool> c) {
int ij=s.size(), ik=0; vector<bool> k(ij), v(31, 1); vector<int> l;
while(ik<31&&l.size()!=16)
{
if(l.empty())
{
vector<bool> v(31, c[ik]); send_packet(v);
if(!c[ik])l.push_back(ik); ik++;
}
else
{
vector<bool> v(31, 0); int u=0;
while(u<l.size()&&ik+u<31){v[l[u]]=c[ik+u]; u++;} send_packet(v);
for(int i=ik; i<ik+u; i++)
{
if(c[i]==0){l.push_back(i);}
}
ik+=u;
}
}
vector<int> mi; for(int i=0; i<31; i++){if(c[i]==0)mi.push_back(i);}
vector<bool> ne; int sz=s.size()+4, r1=16-(sz%16); r1%=16;
for(int i=0; i<4; i++){ne.push_back((r1&1)); r1>>=1;}
for(int i=0; i<s.size(); i++)ne.push_back(s[i]);
r1=16-(sz%16); r1%=16;
for(int i =0; i<r1; i++)
{
ne.push_back(0);
}
int to=ne.size()/16, pr=0;
for(int i=0; i<to; i++)
{
vector<bool> ts(31, 0);
for(int j=0; j<16; j++)ts[mi[j]]=ne[i*16+j];
send_packet(ts);
}
}
vector<bool> receive_message(vector<vector<bool>> r) {
vector<bool> h, b(31, 1); int ij=r.size(),ik=0, uk=0; vector<int> k;
while(ik<31&&k.size()!=16)
{
if(k.empty())
{
vector<bool> u=r[uk]; uk++; int uj=0, vj=0;
for(auto x: u){if(x)uj++; else vj++;}
if(uj>vj)b[ik]=1; else b[ik]=0; if(!b[ik])k.push_back(ik); ik++;
}
else
{
vector<bool> v=r[uk]; uk++; int u=0;
while(u<k.size()&&ik+u<31){b[ik+u]=v[k[u]]; u++;}
for(int i=ik; i<ik+u; i++)
{
if(!b[i]){k.push_back(i);}
}
ik+=u;
}
}
vector<bool> a;
for(int i=uk; i<ij; i++)
{
for(auto x: k){a.push_back(r[i][x]);}
}
if(a.size()<4) return h;
int y=0;for(int i=3; i>=0; i--){y<<=1; if(a[i])y+=1;}
int ty=a.size(); for(int i=4; i<ty-y; i++)h.push_back(a[i]);
return h;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |