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"
void exploreCave(int n) {
int a[n], b[n], used[n], d[n];
for(int i = 0; i<n; i++)
{
a[i] = 0;
b[i] = 0;
used[i] = 0;
}
int l, r, mid;
for(int i = 0; i<n; i++)
{
for(int i = 0; i<n; i++)if(!used[i])b[i] = 0;
l = 0, r = n-1;
int q = tryCombination(b);
if(q == -1)q = n;
while(l < r)
{
mid = (l + r) / 2;
for(int i = 0; i<n; i++)if(!used[i])b[i] = 0;
for(int i = 0; i<n; i++)
{
if(!used[i] && mid+1 <= i && i <= r)
b[i] ^= 1;
}
int k = tryCombination(b);
if(k == -1)k = n;
if((q == i && k > i) || (q > i && k == i))l = mid + 1;
else r = mid;
}
d[i] = l;
if(q == i)a[l] = !a[l];
b[l] = a[l];
used[l] = 1;
}
answer(a, 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... |