제출 #813306

#제출 시각아이디문제언어결과실행 시간메모리
813306Pikachu동굴 (IOI13_cave)C++17
100 / 100
202 ms436 KiB
#include <stdio.h> #include <stdbool.h> #include "cave.h" const int maxn = 5010; void reverse(int l, int r, bool done[], int S[]) { for (int i = l; i <= r; i++) { if (!done[i]) S[i] = !S[i]; } } void exploreCave(int n) { int S[maxn], D[maxn]; bool done[maxn]; for (int i = 0; i < n; i++) { if (tryCombination(S) == i) reverse(0, n - 1, done, S); int l = 0; int r = n - 1; while (l < r) { int mid = (l + r) >> 1; reverse(l, mid, done, S); if (tryCombination(S) == i) { r = mid; } else l = mid + 1; reverse(l, mid, done, S); } done[l] = true; D[l] = i; } answer(S, 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...