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...