Submission #16640

#TimeUsernameProblemLanguageResultExecution timeMemory
16640suhgyuho_williamCave (IOI13_cave)C++98
100 / 100
507 ms604 KiB
#include "cave.h" int ans[5002],door[5002],res[5002],resd[5002]; int test[5002],check[5002]; void exploreCave(int N) { //ans[0]=ans[1]=ans[2]=1; ans[3]=0; //door[0]=3; door[1]=1; door[2]=0; door[3]=2; int i,j,n=N; int left,mid,right; int num; for(i=0;i<n;i++){ for(j=0;j<n;j++) if(!check[j]) test[j]=0; num=tryCombination(test); if(num==i) ans[i]=1; else ans[i]=0; left=0; right=n-1; while(left<=right){ mid=(left+right)/2; if(left==right) break; for(j=left;j<=mid;j++) if(!check[j]) test[j]=ans[i]; for(j=mid+1;j<=right;j++) if(!check[j]) test[j]=1-ans[i]; num=tryCombination(test); if(num==i) left=mid+1; else right=mid; } door[i]=mid; check[mid]=1; test[mid]=ans[i]; } for(i=0;i<n;i++) res[door[i]]=ans[i]; for(i=0;i<n;i++) resd[door[i]]=i; answer(res,resd); }
#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...