Submission #166867

#TimeUsernameProblemLanguageResultExecution timeMemory
166867AlabanaCave (IOI13_cave)C++11
100 / 100
433 ms536 KiB
#include "cave.h" #include <cstdio> 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; int a=tryCombination(S); if(a>i or a==-1){ atual=0; } else{ atual=1; } while(ini<fim){ //printf("%d \n %d %d \n", i, ini, fim); meio=(ini+fim)/2; for(int j=ini;j<=meio;j++){ if(D[j]==-1)S[j]=1; } 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...