Submission #1198294

#TimeUsernameProblemLanguageResultExecution timeMemory
1198294a.pendovData Transfer (IOI19_transfer)C++20
100 / 100
76 ms1728 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; std::vector<int> get_attachment(std::vector<int> source) { int K,N=source.size(),ans=0,br=0; vector<int> ansV; //K=3; //if(false) if(N==63)K=6; else K=8; for(int i=0;i<N;i++) { if(source[i])ans^=(i+1); } for(int i=0;i<K;i++) { if(ans&(1LL<<i)) { ansV.push_back(1); br++; } else { ansV.push_back(0); } } ansV.push_back(br%2); //for(auto i:ansV)cout<<i; //cout<<endl; return ansV; } std::vector<int> retrieve(std::vector<int> data) { int N,K,br=0,ans=0; vector<int> ansV; //cout<<" "; //for(auto i:data)cout<<i; //cout<<endl; //N=7; //K=3; //if(false) if(data.size()==70) { N=63; K=6; } else { N=255; K=8; } for(int i=N;i<N+K;i++)br+=data[i]; if(br%2!=data[N+K]) { for(int i=0;i<N;i++)ansV.push_back(data[i]); return ansV; } for(int i=N;i<N+K;i++) { ans+=data[i]*(1LL<<(i-N)); } //cout<<ans<<endl; for(int i=0;i<N;i++) { if(data[i])ans^=(i+1); } if(ans!=0) { data[ans-1]=1-data[ans-1]; } for(int i=0;i<N;i++)ansV.push_back(data[i]); return ansV; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...