Submission #1200051

#TimeUsernameProblemLanguageResultExecution timeMemory
1200051JungPSData Transfer (IOI19_transfer)C++20
0 / 100
5 ms1720 KiB
#include "transfer.h" #include<iostream> using namespace std; vector<int> get_attachment(vector<int> source) { int n,ck; if(source.size()==255) n=255,ck=8; else n=63,ck=6; vector<int> ss={}; for(int i=0;i<ck;++i){ int tmp=0; for(int cur=(1<<i);cur<=source.size();cur+=(1<<(i+1))){ for(int j=0;j<(1<<i);++j){ //cout << cur+j-1 << " "; tmp+=source[cur+j-1]; } } //cout << endl; ss.push_back(tmp%2); } int tmp=0; for(int i=0;i<source.size();++i) tmp+=source[i]; ss.push_back(tmp%2); return ss; } std::vector<int> retrieve(std::vector<int> data) { int ans=0; int n,ck; if(data.size()>=255) n=255,ck=8; else n=63,ck=6; for(int i=0;i<ck;++i){ int tmp=0; for(int cur=(1<<i);cur<=n;cur+=(1<<(i+1))){ for(int j=0;j<(1<<i);++j){ tmp+=data[cur+j-1]; } } if(data[n+i]!=tmp%2){ ans+=(1<<i); //cout << i << " "; } } //cout << "ANS = " << ans-1; int tmp=0; for(int i=0;i<n;++i) tmp+=data[i]; if(tmp%2!=data[n+ck]){ data[ans-1]=1-data[ans-1]; } return std::vector<int>(data.begin(), data.end()-ck-1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...