#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... |