Submission #614286

# Submission time Handle Problem Language Result Execution time Memory
614286 2022-07-31T00:54:25 Z Plurm Flight to the Ford (BOI22_communication) C++17
0 / 100
101 ms 200 KB
#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 time Memory Grader output
1 Incorrect 17 ms 200 KB Not correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 101 ms 200 KB Not correct
2 Halted 0 ms 0 KB -