#include "cave.h"
//g++ cave/cave.cpp cave/grader.cpp -o cave/cave
//cd cave; ./cave
void exploreCave(int n) {
int s[n], door[n], p[n];
for(int i=0; i<n; ++i) s[i]=door[i]=p[i]=0;
for(int i=0; i<n; ++i) {
for(int j=0; j<n; ++j) {
if(!p[j]) s[j]=0;
}
int rsp = tryCombination(s), flag=0;
if(rsp==-1) rsp=n;
if(rsp<=i) flag=1;
int l=0, r=n-1;
while(l<r) {
int mid = (l+r)/2;
for(int j=0; j<n; ++j) {
if(p[j]) continue;
if(j<=mid) s[j]=flag;
else s[j]=!flag;
}
int rsp1 = tryCombination(s);
if(rsp1==-1) rsp1=n;
if(rsp1<=i) l=mid+1;
else r=mid;
}
s[l]=flag;
door[l]=i;
p[l]=1;
}
answer(s,door);
}
| # | 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... |