제출 #1367391

#제출 시각아이디문제언어결과실행 시간메모리
1367391kahoulHow to Avoid Disqualification in 75 Easy Steps (CEOI23_avoid)C++20
10 / 100
0 ms348 KiB
#include "avoid.h"
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1000;
vector<vector<int>> lvl (20);
vector<int> RESPONSES(20);
int last_lvl = 0;

void build (int l, int r, int i) {
  if (l == r) {
    last_lvl = max(last_lvl, i);
    return;
  }
  int m = (l + r) >> 1;
  for (int j = l; j <= m; j++) {
    lvl[i].push_back(j);
  }
  build(l, m, i + 1);
  build(m + 1, r, i + 1);
}

int find (int l, int r, int i) {
  if (l == r) return l;
  int m = (l + r) >> 1;
  if (RESPONSES[i]) return find(l, m, i + 1);
  else return find(m + 1, r, i + 1);
}

pair<int, int> scout(int r, int h) {
  build(1, maxn, 0);

  for (int i = 0; i < last_lvl; i++) {
    send(lvl[i]);
  }
  vector<int> ans = wait();
  RESPONSES = ans;

  int resp = find(1, maxn, 0);
  return {resp, resp};
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…