제출 #410806

#제출 시각아이디문제언어결과실행 시간메모리
410806DavidDamian동굴 (IOI13_cave)C++11
100 / 100
394 ms500 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; } } int binarySearch(int n, int i, int correct) { int L = 0, R = n - 1; while (L < R) { 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...