Submission #1069163

#TimeUsernameProblemLanguageResultExecution timeMemory
1069163ortsacBrunhilda’s Birthday (BOI13_brunhilda)C++17
56.03 / 100
1086 ms80680 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<long long, long long> #define fr first #define se second int inf = 0x3f3f3f3f3f3f3f3f; const int MAXN = 1e7; int dp[MAXN + 10]; priority_queue<pii> pq; int32_t main() { int n, q; cin >> n >> q; for (int i = 0; i < n; i++) { int a; cin >> a; pq.push({0, a}); } for (int i = 1; i <= MAXN; i++) { dp[i] = inf; while ((pq.top().se - pq.top().fr) <= i) { auto u = pq.top(); pq.pop(); pq.push({u.fr - u.se, u.se}); } dp[i] = min(dp[i], dp[-pq.top().fr] + 1); } while (q--) { int x; cin >> x; if (dp[x] == inf) cout << "oo\n"; else cout << dp[x] << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...