제출 #1163448

#제출 시각아이디문제언어결과실행 시간메모리
1163448sqrteipiData Transfer (IOI19_transfer)C++20
88 / 100
45 ms1728 KiB
#include <bits/stdc++.h> #include "transfer.h" using namespace std; vector<int> get_attachment(vector<int> source) { int sum = 0, sum2 = 0; vector<int> attach; for (int i = 1; i <= source.size(); i++) { if (source[i - 1]) { sum ^= i; } } for (int i = 0; i < 8; i++) attach.push_back((sum >> i) & 1), sum2 ^= attach.back(); attach.push_back(sum2); return attach; } vector<int> retrieve(vector<int> data) { int n = data.size() - 9, sum = 0, sum2 = 0, sum3 = 0; for (int i = 1; i <= n; i++) { if (data[i - 1]) { sum ^= i; } } for (int i = n; i < n + 8; i++) { if (data[i]) { sum2 += 1 << (i - n); sum3 ^= 1; } } vector<int> source = data; for (int i = 0; i < 9; i++) source.pop_back(); if (sum == sum2 || sum3 != data.back()) return source; else { int pos = sum ^ sum2; source[pos - 1] ^= 1; return source; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...