Submission #1251796

#TimeUsernameProblemLanguageResultExecution timeMemory
1251796denislavData Transfer (IOI19_transfer)C++20
60 / 100
5 ms1724 KiB
# include <iostream> # include <vector> using namespace std; # include "transfer.h" //# include "grader.cpp" const int n=63,LOG=6; std::vector<int> get_attachment(std::vector<int> source) { for(int i=0;i<=LOG;i++) source.push_back(0); for(int j=0;j<LOG;j++) { for(int i=1;i<=n;i++) { if((i&(1<<j))>0) source[n+j]^=source[i-1]; } } for(int i=0;i<n;i++) source[n+LOG]^=source[i]; vector<int> data; for(int i=0;i<=LOG;i++) data.push_back(source[n+i]); return data; } std::vector<int> retrieve(std::vector<int> data) { vector<int> ans; for(int i=0;i<n;i++) ans.push_back(data[i]); int all=0; for(int i=0;i<n;i++) all^=data[i]; if(all==data[n+LOG]) return ans; int corr=0; for(int j=0;j<LOG;j++) { int x=0; for(int i=1;i<=n;i++) { if((i&(1<<j))>0) x^=data[i-1]; } if(x!=data[n+j]) corr|=(1<<j); } //cout<<corr<<"\n"; if(corr==0) return ans; else { ans[corr-1]^=1; return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...