Submission #614286

#TimeUsernameProblemLanguageResultExecution timeMemory
614286PlurmFlight to the Ford (BOI22_communication)C++17
0 / 100
101 ms200 KiB
#include "communication.h" #include <bits/stdc++.h> using namespace std; const int mask1 = 0b11101100010010110111101010000; void sendbit(int bit) { int nxtflip = 0; if (bit) { for (int i = 0; i < 30; i++) { int cur = (mask1 >> i) & 1; int rec = send(cur ^ nxtflip); nxtflip = rec == cur ? 1 : 0; } } else { for (int i = 0; i < 30; i++) { int cur = ((mask1 >> i) & 1) ^ 1; int rec = send(cur ^ nxtflip); nxtflip = rec == cur ? 1 : 0; } } } void encode(int N, int X) { // N = 3 if (X == 2) sendbit(1); else sendbit(0); } int recbit() { int cnt[2]; cnt[0] = cnt[1] = 0; for (int i = 0; i < 30; i++) { int rec = receive(); if (((rec >> i) & 1) == ((mask1 >> i) & 1)) cnt[1]++; else cnt[0]++; } return cnt[0] > cnt[1] ? 0 : 1; } std::pair<int, int> decode(int N) { return {1, (recbit() ? 2 : 3)}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...