#include "bits/stdc++.h"
#include "cave.h"
using namespace std;
void exploreCave(int n) {
vector<bool> v(n, false);
vector<int> s(n, 0), d(n, 0);
int in = tryCombination(s.data());
for (int i = 0; i < n; i++) {
int l = 0, r = n - 1;
while (l < r) {
int m = (l + r) / 2;
for (int j = l; j <= m; j++) {
if (!v[j]) s[j] = 1 - s[j];
}
int cur = tryCombination(s.data());
for (int j = l; j <= m; j++) {
if (!v[j]) s[j] = 1 - s[j];
}
if (in != cur) {
r = m;
} else {
l = m + 1;
}
}
// Flip s[l] unconditionally at end of binary search
if (!v[l]) s[l] = 1 - s[l];
d[i] = l;
v[l] = true;
in = tryCombination(s.data());
}
answer(s.data(), d.data());
}
# | 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... |