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 S[N], D[N];
    for(int i=0; i<N; i++) { S[i] = 0; D[i] = -1; }
    if(tryCombination(S)==-1) {
        for(int i=0; i<N; i++) {
            S[i] = 1;
            int d = tryCombination(S);
            D[i] = d;
            S[i] = 0;
        }
    answer(S, D);
    }
    else if(N<=100) {
        while(tryCombination(S)!=-1) {
            int d = tryCombination(S);
            for(int i=0; i<N; i++) {
                if(D[i]!=-1) continue;
                S[i] = 1;
                int t = tryCombination(S);
                if(t<d) D[i] = t;
                if(t>d) { D[i] = d; break;}
                S[i] = 0;
            }
        }
        for(int i=0; i<N; i++) {
            if(D[i]!=-1) continue;
            S[i] = (S[i]+1)%2;
            D[i] = tryCombination(S);
            S[i] = (S[i]+1)%2;
        }
        answer(S, D);
    }
    for(int i=0; i<N; i++) D[i] = i;
    for(int i=0; i<N; i++) {
        if(tryCombination(S)==i) S[i] = 1;
    }
    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... |