This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "cave.h"
#include <bits/stdc++.h>
void exploreCave(int n) {
    using namespace std;
    vector s(n, 0), d(n, -1);
    auto solve = [&](int door_id) {
        const auto is_one {tryCombination(s.data()) == door_id};
        int lo = 0, hi = n;
        while (lo != hi) {
            const auto mid {(lo + hi) >> 1};
            for (int i = lo; i < mid; ++i) {
                if (d[i] == -1) {
                    s[i] = 1;
                }
            }
            const auto res {tryCombination(d.data()) == door_id};
            for (int i = lo; i < mid; ++i) {
                if (d[i] == -1) {
                    s[i] = 0;
                }
            }
            res == is_one ? lo = mid + 1 : hi = mid;
        }
        s[lo] = is_one;
        d[lo] = door_id;
    };
    for (int i = 0; i < n; ++i) {
        solve(i);
    }
    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... |