Submission #31869

#TimeUsernameProblemLanguageResultExecution timeMemory
31869Dat160601Brunhilda’s Birthday (BOI13_brunhilda)C++14
62.86 / 100
679 ms80532 KiB
#include <bits/stdc++.h>
const int MAX=1e7;
using namespace std;
int m,q,ans[MAX+7],pr[100007],dive[MAX+7],x;
void prep(){
    for(int i=1;i<=m;i++){
        for(int j=0;j<=MAX;j+=pr[i]){
            dive[j]=pr[i];
        }
    }
}
int main(){
    scanf("%d %d",&m,&q);
    for(int i=1;i<=m;i++){
        scanf("%d",&pr[i]);
    }
    prep();
    int cnt=0;
    ans[0]=1;
    for(int i=1;i<=MAX;i++){
        while(cnt<i && cnt+dive[cnt]-1<i) cnt++;
        if(cnt==i) break;
        ans[i]=ans[cnt]+1;
    }
    while(q--){
        cin>>x;
        if(ans[x]==0) printf("oo");
        else printf("%d",ans[x]-1);
        printf("\n");
    }
}

Compilation message (stderr)

brunhilda.cpp: In function 'int main()':
brunhilda.cpp:13:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&m,&q);
                         ^
brunhilda.cpp:15:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&pr[i]);
                           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...