#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];}
vi ans = source;
int l = log2(N);
forn(i, l+1) ans.pb(xr&(1<<i)>0);
ans.pb(s&1);
return ans;
}
vi retrieve(vi data){
int N;
For(i, 1, 260) {
int u = i+log2(i)+2;
if(u==data.size()) N=i;
}
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(s&1==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... |