/********************
* what the sigma *
********************/
#include <iostream>
#include <vector>
#include <map>
#include <queue>
#include <algorithm>
#include <stack>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
using namespace std;
#define lgm cin.tie(0)->sync_with_stdio(0);
#define be(x) x.begin(),x.end()
#define ve vector
#define ll long long
#define ld long double
#define db(x) cout << "Debug at " << x << endl;
#define ull unsigned ll
#define f first
#define s second
#define pii pair<int, int>
#define tii tuple<int,int,int>
#define pll pair<ll,ll>
#define sz(x) (int)x.size()
#define pb push_back
const ll mod = 1e9+7,maxn=200005;
const ll INF=(ll)9e18;
std::vector<bool> send_packet(std::vector<bool> A);
void send_message(std::vector<bool> M, std::vector<bool> C) {
ve<bool> first(31);
ve<int> pos,dist;
for (int i=0;i<31;i++) {
if (!C[i]) {
pos.pb(i);
}
}
for (int i=1;i<16;i++) {
dist.pb(pos[i]-pos[i-1]);
}
dist.pb(pos[0]-pos[15]+31);
ve<ve<bool>> packets(66,ve<bool>(31));
for (int i=0;i<16;i++) {
for (int j=0;j<dist[i]-1;j++) {
packets[j][pos[i]]=1;
}
}
M.pb(1);
while (sz(M)<1025) {
M.pb(0);
}
int cur=0;
for (int i=0;i<16;i++) {
for (int j=dist[i];j<66;j++) {
packets[j][pos[i]]=M[cur];
cur++;
}
}
for (int i=0;i<66;i++){
send_packet(packets[i]);
}
}
std::vector<bool> receive_message(std::vector<std::vector<bool>> R) {
ve<int> con(31),pos;
for (int i=0;i<31;i++) {
int p=0;
con[i]=i+1;
while (p<40) {
if (R[p][i]) {
con[i]++;
p++;
} else break;
}
con[i]%=31;
}
for (int i=0;i<31;i++) {
int cur=i;
bool f=0;
for (int j=0;j<16;j++) {
cur=con[cur];
if (cur==i) {
f=(j==15);
break;
}
}
if (f) {
cur=i;
for (int j=0;j<16;j++) {
pos.pb(cur);
cur=con[cur];
}
break;
}
}
ve<bool> out;
for (int i=0;i<16;i++) {
for (int j=(con[pos[i]]-pos[i]+31)%31;j<66;j++) {
out.pb(R[j][pos[i]]);
}
}
while (!out.back()) {
out.pop_back();
}
out.pop_back();
return out;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |