Submission #599839

#TimeUsernameProblemLanguageResultExecution timeMemory
599839yanndevFlight to the Ford (BOI22_communication)C++17
0 / 100
29 ms264 KiB
#include <communication.h> #include <bits/stdc++.h> using namespace std; void encode(int n, int x) { if (x == 1) { send(1); send(1); send(1); send(1); } else if (x == 2) { send(0); send(0); send(0); send(0); } else { send(0); send(1); send(1); send(0); } } pair<int, int> decode(int n) { vector<bool> canBe (3, true); vector<int> bits {}; for (int i = 0; i < 4; i++) bits.push_back(receive()); bool hasConseq = false; for (int i = 0; i + 1 < 4; i++) { if (bits[i] == 0 && bits[i + 1] == 0) { canBe[0] = false; hasConseq = true; } if (bits[i] == 1 && bits[i + 1] == 1) { canBe[1] = false; hasConseq = true; } } if (hasConseq) canBe[2] = false; vector<int> ans {}; for (int i = 0; i < 3; i++) if (canBe[i]) ans.push_back(i + 1); assert((int)ans.size() <= 2); if ((int)ans.size() == 1) return {ans[0], ans[0]}; return {ans[0], ans[1]}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...