제출 #418426

#제출 시각아이디문제언어결과실행 시간메모리
418426iulia13동굴 (IOI13_cave)C++14
100 / 100
317 ms568 KiB
#include <iostream> #include "cave.h" using namespace std; const int N = 5005; int s[N]; int fixat[N]; int button[N]; int door[N]; int S[N], D[N]; int nn; void exploreCave(int n) { int i; nn = n; for (int curr = 0; curr < n; curr++) { int key = 1; for (i = 0; i < n; i++) { if (fixat[i]) s[i] = fixat[i] - 1; else s[i] = 1; } if (tryCombination(s) == curr) { for (i = 0; i < n; i++) { if (fixat[i]) s[i] = fixat[i] - 1; else s[i] = 0; } key = 0; } int st = 0, dr = n - 1; while(st <= dr) { if (st == dr) { fixat[st] = s[st] + 1; button[st] = s[st]; door[st] = curr; break; } int mid = (st + dr) / 2; for (i = st; i <= mid; i++) if (!fixat[i]) s[i] = 1 - key; if (tryCombination(s) == curr) { for (i = st; i <= mid; i++) if (!fixat[i]) s[i] = key; dr = mid; } else st = mid + 1; } } answer(button, 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...