Submission #410805

#TimeUsernameProblemLanguageResultExecution timeMemory
410805DavidDamianCave (IOI13_cave)C++11
0 / 100
2078 ms41208 KiB
#include <iostream> #include "cave.h" using namespace std; int status[5005]; int door[5005]; int locked[5005]; void reset(int n, int L, int R, int correct) { for (int i = L; i <= R; i++) { if (locked[i]) continue; status[i] = correct; } for (int i = 0; i < n; i++) { cout << status[i] << " "; } cout << endl; } int binarySearch(int n, int i, int correct) { int L = 0, R = n - 1; while (L < R) { //cout << L << " "<< R << endl; int mid = (L + R) / 2; reset(n, L, mid, correct); reset(n, mid + 1, R, !correct); if (tryCombination(status) != i) R = mid; else L = mid + 1; } return L; } void exploreCave(int N) { for (int i = 0; i < N; i++) { reset(N, 0, N, 0); int ans = tryCombination(status); int correct = (ans == i); int sw = binarySearch(N, i, correct); status[sw] = correct; door[sw] = i; locked[sw] = 1; } answer(status, door); }
#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...