제출 #654847

#제출 시각아이디문제언어결과실행 시간메모리
654847benjaminkleynCave (IOI13_cave)C++17
100 / 100
280 ms464 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; typedef long long ll; void flip(int l, int r, int s[], bool vis[]) { for (int i = l; i <= r; i++) if (!vis[i]) s[i] ^= 1; } void exploreCave(int N) { int res, d[N], s[N], l, r, m; bool flag1, flag2, vis[N]; memset(d, 0, sizeof(d)); memset(s, 0, sizeof(s)); memset(vis, false, sizeof(vis)); for (int i = 0; i < N; i++) { res = tryCombination(s); flag1 = !(res > i || res == -1); l = 0, r = N - 1; while (l != r) { m = (l + r) / 2; flip(l, m, s, vis); res = tryCombination(s); flag2 = !(res > i || res == -1); flip(l, m, s, vis); if (flag1 != flag2) r = m; else l = m + 1; } d[l] = i; s[l] = flag1; vis[l] = true; } 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...