제출 #166876

#제출 시각아이디문제언어결과실행 시간메모리
166876AlabanaCave (IOI13_cave)C++11
51 / 100
439 ms512 KiB
    #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;
        }
        for(int i=0;i<N;i++){
          int ini=0, fim=N-1,atual=-1;
          int meio=(ini+fim)/2;
          if(tryCombination(S)>i or tryCombination(S)==-1){
            atual=0;
          }
          else{
            atual=1;
          }
          while(ini<fim){
     
            meio=(ini+fim)/2;
            for(int j=ini;j<=meio;j++){
              if(D[j]==-1)S[j]=1;
            }
            int a=tryCombination(S);
            if((atual==1 and (a>i or a==-1)) or (atual==0 and a==i)){
              for(int j=ini;j<=meio;j++){
                if(D[j]==-1)S[j]=0;
              }
              fim=meio;
            }
            else if((atual==1 and a==i) or (atual==0 and (a>i or a==-1))){
              if(ini==fim-1){
                D[fim]=i;
              }
              for(int j=ini;j<=meio;j++){
                if(D[j]==-1)S[j]=0;
              }
              ini=meio+1;
            }
          }
          S[ini]=atual;
          D[ini]=i;
        }
        answer(S,D);
    }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...