Submission #919030

#TimeUsernameProblemLanguageResultExecution timeMemory
919030harrisyu9696동굴 (IOI13_cave)C++14
100 / 100
236 ms696 KiB
#include<bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int N){ int n=N; int cur[n]={}, d[n]={}; bool done[n]={}; for(int i=0; i<n; i++){ int tmp=tryCombination(cur); int con=(tmp==-1||tmp>i); int l=0, r=n-1; while(l!=r){ int mid=(l+r)/2; for(int j=l; j<=mid; j++){ if(!done[j]) cur[j]^=1; } int len=tryCombination(cur); int now=(len==-1||len>i); for(int j=l; j<=mid; j++){ if(!done[j]) cur[j]^=1; } if(now!=con) r=mid; // 把前半改掉會變成不同情況 -> 控制門 i 的開關在前半 else l=mid+1; } done[l]=1; d[l]=i; cur[l]=1-con; } answer(cur, 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...