Submission #1264697

#TimeUsernameProblemLanguageResultExecution timeMemory
1264697FernandoJC07Data Transfer (IOI19_transfer)C++20
0 / 100
6 ms3256 KiB
#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] && puta==0) return ans; ans[puta-1] ^= 1; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...