#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
void exploreCave(int n) {
int s[n], d[n];
vector<int> left;
for (int i = 0; i < n; ++i)
left.push_back(i);
int i = 0;
while (!left.empty()) {
int c = 0;
for (auto j : left)
s[j] = 0;
int t = tryCombination(s);
if (t != -1 && t < i) c = 1;
int lo = -1, hi = left.size() - 1;
while (lo + 1 < hi) {
int mid = (lo + hi) / 2;
for (int j = 0; j <= mid; ++j)
s[left[j]] = c;
for (int j = mid + 1; j < left.size(); ++j)
s[left[j]] = c ^ 1;
t = tryCombination(s);
if (t != -1 && t < i) lo = mid;
else hi = mid;
}
d[left[hi]] = i++;
s[left[hi]] = c;
left.erase(left.begin() + hi);
}
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... |