Submission #1127177

#TimeUsernameProblemLanguageResultExecution timeMemory
1127177julia_08Data Transfer (IOI19_transfer)C++17
0 / 100
6 ms1724 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; vector<int> get_attachment(vector<int> source){ vector<int> ans; int xor_sum = 0, x = 0; for(int i=0; i<(int) source.size(); i++){ if(source[i] == 1){ xor_sum ^= (i + 1); x ^= 1; } } xor_sum --; ans.push_back(x); for(int i=0; i<8; i++){ if(xor_sum & (1 << i)){ ans.push_back(1); } else ans.push_back(0); } return ans; } vector<int> retrieve(vector<int> data){ vector<int> ans; int xor_sum = 0, x = 0; for(int i=data.size()-8; i<data.size(); i++){ if(data[i] == 1){ xor_sum += (1 << (i - data.size() + 8)); x ^= 1; } } xor_sum ++; int xor_one = 0; for(int i=0; i<data.size()-9; i++){ if(data[i] == 1){ xor_one ^= (i + 1); } } if(x != data[data.size() - 9]){ for(int i=0; i<data.size()-9; i++){ ans.push_back(data[i]); } } else{ for(int i=0; i<data.size()-9; i++){ if((xor_one ^ xor_sum) == (i + 1)){ ans.push_back(1 - data[i]); } else ans.push_back(data[i]); } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...