Submission #994820

#TimeUsernameProblemLanguageResultExecution timeMemory
994820stdfloatCave (IOI13_cave)C++17
100 / 100
465 ms600 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int n) { int a[n], b[n]; for (int i = 0; i < n; i++) { a[i] = b[i] = 0; } vector<bool> vis(n); for (int z = 0; z < n; z++) { int x = tryCombination(a); if (z != x) { int l = 0, r = n - 1; while (l < r) { int md = (l + r) >> 1; int v[n]; for (int i = 0; i < n; i++) v[i] = (a[i] || (md < i && !vis[i])); if (tryCombination(v) == z) l = md + 1; else r = md; } b[l] = z; vis[l] = true; continue; } int l = 0, r = n - 1; while (l < r) { int md = (l + r) >> 1; int v[n]; for (int i = 0; i < n; i++) v[i] = (a[i] || (md < i && i <= r && !vis[i])); int y = tryCombination(v); if (y == -1 || x < y) l = md + 1; else r = md; } a[l] = 1; b[l] = x; vis[l] = true; } for (int i = 0; i < n; i++) { if (vis[i]) continue; a[i] = 1; b[i] = tryCombination(a); a[i] = 0; } answer(a, b); }
#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...