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