Submission #1233387

#TimeUsernameProblemLanguageResultExecution timeMemory
1233387dssfsuper2Data Transfer (IOI19_transfer)C++20
0 / 100
1 ms580 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; vector<int> get_attachment(vector<int> source) { vector<int> sequence(((int)source.size()==63? 6:8), 0); for(int i = 1;i<=source.size();i++){ for(int j = 0;j<8;j++){ if((i>>j)&1){ sequence[j]^=source[i-1]; } } } int x = 0; for(auto thing:sequence){ cout<<thing; x^=thing; } cout<<'\n'; sequence.push_back(x); return sequence; } vector<int> retrieve(vector<int> data) { vector<int> totx(8, 0); int rs = (data.size()<100 ? 63:255); int rsa = (data.size()<100 ? 6:8); for(int i = 1;i<=rs;i++){ for(int j = 0;j<9;j++){ if((i>>j)&1){ totx[j]^=data[i-1]; } } } int x = 0; for(int i = rs;i<=rs+rsa;i++){ x^=data[i]; } if(x==1){ for(int i = 0;i<rsa+1;i++){ data.pop_back(); } return data; } for(int i = rs;i<rs+rsa;i++){ totx[i-rs]^=data[i]; } vector<int> ans; int t= 0; for(int i = 0;i<rsa;i++){ if(totx[i])t|=(1<<i); } if(t!=0)data[t-1]^=1; for(int i = 0;i<rsa+1;i++){ data.pop_back(); } return data; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...