#include "cave.h"
#include "bits/stdc++.h"
using namespace std;
void exploreCave(int n)
{
    int s[n], d[n];
    memset(s, 0, sizeof(s));
    vector<int> v(n);
    iota(v.begin(), v.end(), 0LL);
    for (int i = 0; i < n; ++i)
    {
        for (int j : v)
        {
            s[j] = 0;
        }
        if (tryCombination(s) != i)
        {
            for (int j : v)
            {
                s[j] = 1;
            }
        }
        int l = 0, r = (int)v.size() - 1, mid, best;
        while(l <= r)
        {
            mid = (l + r) >> 1;
            for (int j = l; j <= mid; ++j)
            {
                s[v[j]] = !s[v[j]];
            }
            int query = tryCombination(s);
            for (int j = l; j <= mid; ++j)
            {
                s[v[j]] = !s[v[j]];
            }
            if (query != i)
            {
                best = mid;
                r = mid - 1;
            }
            else
            {
                l = mid + 1;
            }
        }
        s[v[best]] = !s[v[best]];
        v.erase(v.begin() + best);
    }
    for (int i = 0; i < n; ++i)
    {
        s[i] = !s[i];
        int pos = tryCombination(s);
        d[i] = pos;
        s[i] = !s[i];
    }
    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... |