Submission #1233571

#TimeUsernameProblemLanguageResultExecution timeMemory
1233571kaltspielerhyData Transfer (IOI19_transfer)C++20
60 / 100
4 ms1728 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; // avoir le full de 2 problèmes sans pouvoir les coder... int N = 63; vector<int> get_attachment(vector<int> source) { vector<int> res; int parite = 0; int position = 0; for (int i = 1; i <= N; i++) { if (source[i-1] == 1) { position ^= i; parite ^= 1; } } vector<int> binaire(6, 0); while (position != 0) { binaire[0]++; int idx = 0; while (binaire[idx] > 1) { binaire[idx] = 0; binaire[idx+1]++; idx++; } position--; } binaire.push_back(parite); return binaire; } vector<int> retrieve(vector<int> data) { int parite = 0; int position = 0; for (int i = N; i < N+6; i++) { if (data[i] == 1) { position += (1 << i-N); } } for (int i = 1; i <= N; i++) { if (data[i-1] == 1) { parite ^= 1; position ^= i; } } // vector<int> fz(data.begin(), data.begin()+N); // for (int i : fz) cerr << i << ' '; // cerr << '\n'; // cerr << position << '\n'; if (position == 0 || parite == data[N+6]) return vector<int>(data.begin(), data.begin()+N); data[position-1] ^= 1; vector<int> dd(data.begin(), data.begin()+N); // for (int i : dd) cerr << i << ' '; // cerr << '\n'; return vector<int>(data.begin(), data.begin()+N); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...