Submission #365453

#TimeUsernameProblemLanguageResultExecution timeMemory
365453tfgZalmoxis (BOI18_zalmoxis)C++17
15 / 100
122 ms10988 KiB
#include <iostream> #include <vector> #include <chrono> #include <random> #include <cassert> std::mt19937 rng((int) std::chrono::steady_clock::now().time_since_epoch().count()); const int ms = 1001000; int n, k, cur = 0; int a[ms]; bool got = false; int lookahead() { return cur < n ? a[cur] : -1; } void print(int x) { if(got) std::cout << ' '; got = true; std::cout << x; } int rest = 1 << 30; void solve(int N) { assert(N >= 0); if(lookahead() == N) { print(N); cur++; } else if(k > 0 && rest - (1 << N) >= k - 1) { print(N); rest -= 1 << N; k--; } else { solve(N-1); solve(N-1); } } int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); std::cin >> n >> k; for(int i = 0; i < n; i++) { std::cin >> a[i]; rest -= 1 << a[i]; } solve(30); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...