제출 #560607

#제출 시각아이디문제언어결과실행 시간메모리
560607MilosMilutinovicData Transfer (IOI19_transfer)C++14
0 / 100
9 ms2492 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; vector<int> get_attachment(vector<int> source) { int n = source.size(); vector<int> ret(9); for (int i = 0; i < n; i++) { for (int j = 0; j < 8; j++) { if ((i + 1) >> j & 1) { ret[j] ^= source[i]; } } ret[8] ^= source[i]; } return ret; } vector<int> retrieve(vector<int> data) { int n = data.size(); int f = 0; for (int i = 0; i < n - 9; i++) { f ^= data[i]; } if (f != data.back()) { return vector<int>(data.begin(), data.begin() + n - 9); } vector<int> r(8); for (int i = 0; i < n; i++) { for (int j = 0; j < 8; j++) { if ((i + 1) >> j & 1) { r[j] ^= data[i]; } } } int pos = 0; for (int i = 0; i < 8; i++) { if (r[i] != data[n - 9 + i]) { pos += (1 << i); } } pos--; data[pos] ^= 1; return vector<int>(data.begin(), data.begin() + n - 9); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...