#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
int R[5000], D[5000];
bool vis[5000];
void exploreCave(int N) {
for (int i = 0; i < N; i++) {
R[i] = 0;
D[i] = 0;
vis[i] = false;
}
for (int j = 0; j < N; j++) {
int expected = tryCombination(R);
int s = (expected == -1 || expected > j) ? 0 : 1;
int l = 0, r = N - 1;
int idx = -1;
while (l <= r) {
int mid = (l + r) / 2;
int tmp[5000];
for (int i = 0; i < N; i++)
tmp[i] = R[i];
for (int i = l; i <= mid; i++) {
if (!vis[i]) {
tmp[i] ^= 1;
}
}
int res = tryCombination(tmp);
int s2 = (res == -1 || res > j) ? 0 : 1;
if (s2 != s) {
r = mid;
} else {
l = mid + 1;
}
if (l == r) break;
}
idx = l;
vis[idx] = true;
R[idx] = 0;
int test = tryCombination(R);
if (test != -1 && test <= j) {
R[idx] = 1;
}
D[idx] = j;
}
answer(R, D);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |