#include <bits/stdc++.h>
#include "transfer.h"
#define vi vector<int>
#define vii vector<vi>
#define pb push_back
#define ff first
#define ss second
#define pii pair<int, int>
#define vpii vector<pii>
#define forn(i, n) for(int i = 0; i<n; ++i)
#define For(i, a, n) for(int i = a; i<n; ++i)
using namespace std;
vi get_attachment(vi source){
int N = source.size();
int xr = 0, s = 0;
For(i, 1, N+1){ xr ^= source[i-1]*i; s+=source[i-1];}
//cout<<xr<<endl;
vi ans = source;
int l = log2(N);
forn(i, l+1) {xr&(1<<i) ? ans.pb(1) : ans.pb(0);}
//mos(ans);
ans.pb(s%2);
return ans;
}
vi retrieve(vi data){
int N;
data.size()>255 ? N=255 : N=63;
int xr = 0, s = 0;
vi ans;
For(i, 1, N+1) { xr ^= data[i-1]*i; s+=data[i-1]; ans.pb(data[i-1]);}
int k = 0;
For(i, N, data.size()-1) k += (data[i]<<(i-N));
int puta = k^xr;
if(puta==0) return ans;
if(s%2 == data[data.size()-1]) return ans;
ans[puta-1] ^= 1;
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |