#include "bits/stdc++.h"
#include "cave.h"
using namespace std;
void exploreCave(int n){
bool v[1001] = {0}; // safer size if n <= 1000
int s[1001] = {0}, d[1001] = {0};
int in = tryCombination(s); // get initial score once
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] = !s[j];
int cur = tryCombination(s);
for (int j = l; j <= m; j++) if (!v[j]) s[j] = !s[j];
if (in != cur) r = m;
else l = m + 1;
}
if (in == tryCombination(s)) s[l] = !s[l]; // re-check before flipping
d[i] = l;
v[l] = true;
in = tryCombination(s); // update in after flipping
}
answer(s, 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... |