#include "cave.h"
#include<bits/stdc++.h>
using namespace std;
int state[5000],door[5000],used[5000],S[500],D[5000];
void exploreCave(int N)
{
for(int d=0;d<N;++d)
{
for(int i=0;i<N;++i)
if(used[i])
S[i]=state[i];
S[0]^=1;
int l=0,r=N-1,can=-1;
int k=tryCombination(S);
while(l<=r)
{
int mid=(l+r)>>1;
for(int i=0;i<N;++i)
if(used[i])
S[i]=state[i];
else
S[i]=(i<=mid);
int res=tryCombination(S);
if(res==-1||res>d)
{
can=mid;
r=mid-1;
}
else
l=mid+1;
}
used[can]=1;
D[can]=d;
for(int s=0;s<=1;++s)
{
S[can]=s;
for(int i=0;i<N;++i)
if(used[i]&&i!=can)
S[i]=state[i];
int res=tryCombination(S);
if(res==-1||res>d)
{
state[can]=s;
break;
}
}
}
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... |