제출 #31849

#제출 시각아이디문제언어결과실행 시간메모리
31849ngkan146Brunhilda’s Birthday (BOI13_brunhilda)C++98
100 / 100
606 ms155564 KiB
#include <bits/stdc++.h> #define fi first #define se second using namespace std; typedef pair<int,int> ii; const int MAX = (int) 1e7; int madiv[MAX+5]; int m,q; int p[100005]; int dp[MAX+5]; void prep(){ for(int i=1;i<=m;i++) for(int j=0;j<=MAX;j+=p[i]) madiv[j] = p[i]; } int main(){ scanf("%d %d",&m,&q); for(int i=1;i<=m;i++) scanf("%d",&p[i]); prep(); for(int i=1;i<=MAX;i++) dp[i] = 10*MAX; deque <ii> dq; dq.push_back(ii(0,madiv[0]-1)); for(int i=1;i<=MAX;i++){ while(dq.size() && dq.front().fi + dq.front().se < i) dq.pop_front(); if (!dq.size()) break; assert(dq.size()); dp[i] = dp[dq.front().fi] + 1; dq.push_back(ii(i,madiv[i]-1)); } for(int i=1;i<=q;i++){ int n; scanf("%d",&n); if (dp[n] >= MAX) printf("oo\n"); else printf("%d\n",dp[n]); } }

컴파일 시 표준 에러 (stderr) 메시지

brunhilda.cpp: In function 'int main()':
brunhilda.cpp:17:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d %d",&m,&q);
                        ^
brunhilda.cpp:19:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d",&p[i]);
                        ^
brunhilda.cpp:34:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d",&n);
                     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...