Submission #614262

#TimeUsernameProblemLanguageResultExecution timeMemory
614262PlurmFlight to the Ford (BOI22_communication)C++17
0 / 100
44 ms236 KiB
#include "communication.h"
#include <bits/stdc++.h>
using namespace std;

void sendbit(int bit) {
  for (int tmt = 0; tmt < 11; tmt++) {
    int rec;
    if (bit) {
      rec = send(0);
      if (rec == 1)
        send(1);
      else {
        rec = send(0);
        if (rec == 1)
          send(1);
      }
    } else {
      rec = send(1);
      if (rec == 0)
        send(0);
      else {
        rec = send(1);
        if (rec == 0)
          send(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 tmt = 0; tmt < 11; tmt++) {
    int last = receive();
    int cur = receive();
    while (last != cur) {
      last = cur;
      cur = receive();
    }
    cnt[cur]++;
  }
  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...