Submission #443708

#TimeUsernameProblemLanguageResultExecution timeMemory
443708lLab_Cave (IOI13_cave)C++14
0 / 100
128 ms420 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave(int N) {
    int A[N],B[N];
    for(int i=0;i<N;++i){
        A[i] = 0;
        B[i] = -1;
    }

    int k = 0;
    int i=0;
    while(i<N||k>=0){
        k = tryCombination(A);
        if(k == -1) k = N;
        bool cl = k == i;
        int l=0, r=N-1;
        while(l<r){
            int p = k;
            int mid = (l+r)/2;
            int C[N];
            for(int j=0;j<N;++j) C[j] = A[j];
            for(int j=mid+1;j<=r;++j){
                if(B[j] != -1) continue;
                C[j] = (A[j]+1)%2;
            }
            k = tryCombination(C);
            if(k==-1) k = N;
            if(cl){
                if(k>i){
                    l = mid+1;
                }else{
                    r = mid;
                }
            }else{
                if(k==i){
                    l = mid+1;
                }else{
                    r = mid;
                }
            }
        }
        if(cl){
            A[l] = (A[l]+1)%2;
        }
        B[i] = l;
    }

    answer(A, B);
}

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:20:17: warning: unused variable 'p' [-Wunused-variable]
   20 |             int p = k;
      |                 ^
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...