Submission #1171411

#TimeUsernameProblemLanguageResultExecution timeMemory
1171411Francisco_MartinData Transfer (IOI19_transfer)C++20
0 / 100
4 ms1720 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; vector<int> get_attachment(vector<int> source){ int n=source.size(), x=0, k=0, p=0; for(int i=1; i<=n; i++) x^=(source[i-1]*i); if(n==63) k=6; else k=8; vector<int> ans(k+1); for(int i=0; i<k; i++){ if(x&1){ ans[k-i-1]=1; p++; } else ans[k-i-1]=0; x/=2; } ans[k]=p&1; return ans; } vector<int> retrieve(vector<int> data){ int n=data.size(), x=0, x2=0, p=0, k=0; bool flag=true; if(n==70){ k=7; for(int i=0; i<6; i++){ x+=pow(2,5-i)*(data[63+i]); p+=data[63+i]; } }else{ k=9; for(int i=0; i<8; i++){ x+=pow(2,7-i)*(data[255+i]); p+=data[255+i]; } } if(p%2!=data[n-1]) flag=false; vector<int> ans=vector<int>(data.begin(),data.end()-k); if(flag){ for(int i=1; i<=n-k; i++) x2^=data[i-1]*i; ans[(x^x2)-1]^=1; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...