Submission #443603

#TimeUsernameProblemLanguageResultExecution timeMemory
443603Lam_lai_cuoc_doi동굴 (IOI13_cave)C++17
0 / 100
14 ms332 KiB
#define task "" #include <iostream> #include <cstdio> #include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; #include "cave.h" constexpr int N = 5e3 + 5; constexpr int Inf = 1e9 + 7; int a[N], s[N], d[N]; int m; int Guess(int l, int r, int v) { for (int i = l; i <= r; ++i) s[i] = v; int x = tryCombination(s); return (x == -1 ? Inf : x); } int Get(int l, int r, const int &v, const int &i) { while (l != r) { if (Guess(l, (l + r) / 2, !v) == i) r = (l + r) / 2; else l = (l + r) / 2 + 1; } return l; } void exploreCave(int n) { m = n - 1; for (int i = 0; i < n; ++i) a[i] = i; for (int i = 0; i < n; ++i) { if (Guess(0, m, 1) > i) { int tmp = Get(0, m, 1, i); s[a[tmp]] = 1; d[a[tmp]] = i; a[tmp] = a[m]; --m; } else { int tmp = Get(0, m, 0, i); s[a[tmp]] = 0; d[a[tmp]] = i; a[tmp] = a[m]; --m; } } 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...