제출 #493706

#제출 시각아이디문제언어결과실행 시간메모리
493706_Monkey_Brunhilda’s Birthday (BOI13_brunhilda)C++17
40 / 100
1103 ms39884 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define el '\n' #define ld long double const int maxn=1e5+1,nn=1e7+1; int a[maxn],n,m,q,p,oo,ans,k,f[nn]; int t; bool ok; void check(){ t=1; ok=0; for(int i=0;i<m;++i){ k=t*a[i]; if(t*a[i]<t || t*a[i]>oo || k/a[i]!=t){ ok=1; return; } t=t*a[i]; } } int sol(int z){ if(f[z]>=0) return f[z]; int ma=0; for(int i=0;i<m;++i) if(z%a[i]>ma) ma=z%a[i]; return sol(z-ma)+1; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin >> m >> q; for(int i=0;i<m;++i) cin >> a[i]; sort(a+0,a+m); memset(f,-1,sizeof f); f[0]=0; oo=1e7; check(); while(q--){ cin >> n; if(ok){ cout << sol(n); } else { if(n>=t){ cout << "oo"; } else { cout << sol(n); } } cout << el; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...