Submission #631296

#TimeUsernameProblemLanguageResultExecution timeMemory
631296bachhoangxuanBrunhilda’s Birthday (BOI13_brunhilda)C++17
0 / 100
237 ms262148 KiB
#include<bits/stdc++.h>
using namespace std;
#define maxa 10000000
#define maxn 100005
#define pii pair<int,int>
int q,m,dp[maxa+5],p[maxn];
vector<int> s[maxa+5];
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    cin >> m >> q;
    for(int i=1;i<=m;i++){
        cin >> p[i];s[0].push_back(p[i]);
    }
    int pre=0,lst=0,num=0,dead=-1;
    while(true){
        if(pre>lst){
            dead=pre;
            break;
        }
        int nxt=lst;
        for(int i=pre;i<=lst;i++){
            dp[i]=num;
            for(auto it:s[i]){
                nxt=max(nxt,i+it-1);
                if(i+it<=maxa) s[i+it].push_back(it);
            }
        }
        pre=lst+1;lst=nxt;num++;
        if(lst>maxa) break;
    }
    for(int i=pre;i<=min(lst,maxa);i++) dp[i]=num;
    cout << dead << '\n';
    for(int i=1;i<=q;i++){
        int a;cin >> a;
        if(a>=dead && dead!=-1) cout << "oo\n";
        else cout << dp[a] << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...