이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "cave.h"
#include<bits/stdc++.h>
void exploreCave(int n) {
int a[n];
memset(a,0,sizeof a);
int d[n];
for(int i=0; i<n; i++) d[i] = i;
int done[n];
memset(done,0,sizeof done);
int x;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
if(!done[j])
{
a[j] = 0;
}
}
x = tryCombination(a);
if(x<0 || x>i)
{
for(int j=0; j<n; j++)
{
if(!done[j]) a[j] = 1;
}
}
int l = 0;
int r = n-1;
int ans = n-1;
while(l<=r)
{
int mid = l + (r-l)/2;
for(int j=l; j<=mid; j++)
{
if(!done[j])
{
a[j]^=1;
}
}
x = tryCombination(a);
if(x<0 || x>i)
{
for(int j=l; j<=mid; j++)
{
if(!done[j]) a[j]^=1;
}
ans = mid;
r = mid-1;
}
else l = mid + 1;
}
done[ans] = 1;
d[ans] = i;
a[ans]^=1;
}
// int i=tryCombination(a);
// while(i!=-1)
// {
// a[d[i]] ^=1;
// i = tryCombination(a);
// }
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... |