Submission #1255504

#TimeUsernameProblemLanguageResultExecution timeMemory
1255504thewizardmanCave (IOI13_cave)C++20
0 / 100
324 ms516 KiB
#include "cave.h"

int s[5000], a[5000], b[5000];

int max(int x, int y) {
  return x > y ? x : y;
}

void exploreCave(int n) {
  for (int i = 0; i < n; i++) a[i] = -1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) s[j] = max(0, a[j]);
    int skibidi = tryCombination(s);
    int gean = skibidi >= i+1 || skibidi == -1;

    int l = 0, r = n - 1, mid, ans;
    while (l <= r) {
      mid = (l + r) >> 1;
      for (int i = 0; i < n; i++) {
        if (a[i] != -1) s[i] = a[i];
        else s[i] = (i <= mid)^gean;
      }
      if (tryCombination(s) >= i+1) r = mid - 1, ans = mid;
      else l = mid + 1;
    }
    a[ans] = gean^1;
    b[i] = ans;
  }
  answer(a, b);
}
#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...