Submission #1264555

#TimeUsernameProblemLanguageResultExecution timeMemory
1264555BlockOG동굴 (IOI13_cave)C++20
100 / 100
409 ms548 KiB
#include "cave.h" #include <bits/stdc++.h> // mrrrow meeow :3 // go play vivid/stasis now! it's free on steam #define fo(i, a, b) for (auto i = (a); i < (b); i++) #define of(i, a, b) for (auto i = (b); i-- > (a);) #define f first #define s second #define pb push_back #define pob pop_back #define lb lower_bound #define ub upper_bound #define be(a) a.begin(), a.end() using namespace std; int ____init = [] { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); return 0; }(); int tryComb(int s[]) { int res = tryCombination(s); return res == -1 ? 5000 : res; } int s[5000]; bool locked[5000]; int d[5000]; void exploreCave(int n) { fo(i, 0, n) { fo(j, 0, n) if (!locked[j]) s[j] = 1; int check_for = tryComb(s) > i; int l = 0, r = n; while (l < r - 1) { int mid = (l + r + 1) / 2; fo(j, 0, mid) if (!locked[j]) s[j] = check_for; fo(j, mid, n) if (!locked[j]) s[j] = 1 - check_for; if (tryComb(s) > i) r = mid; else l = mid; } s[l] = check_for; locked[l] = true; d[l] = i; } 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...