Submission #1237869

#TimeUsernameProblemLanguageResultExecution timeMemory
1237869SG2AlokCave (IOI13_cave)C++20
100 / 100
156 ms512 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int a[N], ans[N]; for(int i = 0; i < N; i++) a[i] = 0, ans[i] = -1; int cur = tryCombination(a); for(int i = 0; i < N - 1; i++){ // cout << "cur = " << cur << endl; int l = 0, r = N - 1; while(l < r){ int mid = (l + r) / 2; for(int j = l; j <= mid; j++){ if(ans[j] != -1) continue; a[j] = 1; } int judges = tryCombination(a); // cout << i << " " << l << " " << r << " " << judges << endl; for(int j = l; j <= mid; j++){ if(ans[j] != -1) continue; a[j] = 0; } if(cur != i){ if(judges != i){ l = mid + 1; } else { r = mid; } } else { if(judges == i){ l = mid + 1; } else { r = mid; } } } ans[l] = i; if(cur == i) a[l] = 1; cur = tryCombination(a); } for(int i = 0; i < N; i++){ if(ans[i] == -1){ ans[i] = N - 1; a[i] = 1; if(tryCombination(a) == N - 1) a[i] = 0; } } answer(a, ans); }
#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...