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