Submission #1216919

#TimeUsernameProblemLanguageResultExecution timeMemory
1216919beijingCave (IOI13_cave)C++20
100 / 100
296 ms516 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N){ int S[N],D[N]; bool used[N]; for(int i=0;i<N;i++){ S[i]=0; D[i]=0; used[i]=false; } for(int door=0;door<N;door++){ for(int i=0;i<N;i++){ if(!used[i])S[i]=0; } int blocked=tryCombination(S); int correctPos=(blocked!=door?0:1); for(int i=0;i<N;i++){ if(!used[i])S[i]=1-correctPos; } int l=0,r=N-1,idx=0; while(l<r){ int m=(l+r)/2; for(int i=l;i<=m;i++){ if(!used[i])S[i]=correctPos; } blocked=tryCombination(S); if(blocked!=door){ idx=m; r=m; }else{ idx=m+1; l=m+1; } for(int i=l;i<=m;i++){ if(!used[i])S[i]=1-correctPos; } } D[idx]=door; used[idx]=true; S[idx]=correctPos; } 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...