#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MOD 1000000009
#define INF 1000000019
#define POT (1<<20)
#define INFL 1000000000000000099
#include "message.h"
vector<bool>efm,v;
vector<ll>pck[31],v2;
ll nxt[31];
vector<bool>ns;
void send_message(vector<bool>m,vector<bool>c){
efm=m;
efm.pb(1);
for(ll i=0;i<1024-(ll)m.size();i++)efm.pb(0);
reverse(efm.begin(),efm.end());
for(ll i=0;i<31;i++){pck[i].clear();
if(c[i]){
for(ll j=0;j<66;j++)pck[i].pb(0);
}
else{
for(ll j=i+1;c[j%31];j++)pck[i].pb(0);
pck[i].pb(1);
while(pck[i].size()<66){
pck[i].pb(efm.back());efm.pop_back();
}
}
}
v.resize(31);
for(ll i=0;i<66;i++){
for(ll j=0;j<31;j++)v[j]=pck[j][i];
send_packet(v);
}
}
vector<bool>receive_message(vector<vector<bool>>r){
ns.clear();
for(ll i=0;i<31;i++){nxt[i]=(i+1)%31;for(ll j=0;j<66 && r[j][i]==0;j++)nxt[i]=(i+j+2)%31;}
for(ll i=0;i<31;i++){
ll ile=1;
ll ak=nxt[i];
v2={i};
while(ak!=i){
v2.pb(ak);
ak=nxt[ak];
ile++;
if(ile>16)break;
}
if(ile!=16)continue;
for(ll j : v2){
ll k=1;
while(!r[k-1][j])k++;
while(k<66){ns.pb(r[k][j]);k++;}
}
break;
}
while(!ns.back())ns.pop_back();
ns.pop_back();
return ns;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |