Submission #1216817

#TimeUsernameProblemLanguageResultExecution timeMemory
1216817mariamp1Cave (IOI13_cave)C++20
0 / 100
279 ms536 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { vector<int> S(N, 0), D(N, -1); vector<bool> ki(N, false); for (int door = 0; door < N; door++) { int result = tryCombination(S.data()); int state; if (result == door || result == -1 || result > door) state = 0; else state = 1; int lo = 0, hi = N - 1, sw = -1; while (lo <= hi) { int mid = (lo + hi) / 2; vector<int> test = S; for (int i = 0; i <= mid; i++) { if (!ki[i]) test[i] = 1 - state; } for (int i = mid + 1; i < N; i++) { if (!ki[i]) test[i] = state; } int res = tryCombination(test.data()); if (res == -1 || res > door) { sw = mid; hi = mid - 1; } else { lo = mid + 1; } } S[sw] = state; D[sw] = door; ki[sw] = true; } vector<int> finalD(N); for (int i = 0; i < N; i++) { finalD[D[i]] = i; } answer(S.data(), finalD.data()); }
#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...