Submission #1224442

#TimeUsernameProblemLanguageResultExecution timeMemory
1224442LaMatematica14How to Avoid Disqualification in 75 Easy Steps (CEOI23_avoid)C++20
0 / 100
1 ms420 KiB
#include "avoid.h"
#include <bits/stdc++.h>
using namespace std;

pair<int, int> scout(int R, int H) {
  int pos1 = 0, pos2 = 0;
  /*
  auto question = [&](int bit) -> int {
    int ok = 1<<bit;
    vector<int> ask;
    for (int i = 1; i <= 1000; i++) {
      if (i&ok) ask.push_back(i);
    }
    send(ask);
    return wait()[0];
  };*/
  for (int i = 0; i < 10; i++) {
    int ok = (1<<i)|pos1;
    vector<int> ask;
    for (int i = 1; i <= 1000; i++) {
      if ((i&ok) == ok) ask.push_back(i);
    }
    send(ask);
    pos1 |= (wait()[0])<<i;
  }
  for (int i = 0; i < 10; i++) {
    int ok = (1<<i);
    vector<int> ask;
    for (int i = 1; i <= 1000; i++) {
      if (i == pos1) continue;
      if (i&ok) ask.push_back(i);
    }
    if (ask.size() == 0) return {pos1, pos1};
    send(ask);
    pos2 |= (wait()[0])<<i;
  }
  return {pos1, pos2};
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...