Submission #154335

#TimeUsernameProblemLanguageResultExecution timeMemory
154335brcodeBrunhilda’s Birthday (BOI13_brunhilda)C++14
80.32 / 100
739 ms80812 KiB
#include <iostream> using namespace std; const int MAXN = 1e7+5; int arr[MAXN]; int dp[MAXN]; int dp2[MAXN]; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>arr[i]; } for(int i=0;i<arr[n];i++){ dp[i] = 1; } for(int i=arr[n];i<MAXN;i++){ dp[i] = 1e9; } for(int i=1;i<=n;i++){ for(int j=arr[i]-1;j<MAXN;j+=arr[i]){ dp2[j] = max(dp2[j],arr[i]-1); //cout<<j<<" "<<dp2[j]<<endl; } } for(int i=MAXN-1;i>=0;i--){ dp2[i] = max(dp2[i],dp2[i+1]-1); } for(int i=arr[n];i<MAXN;i++){ dp[i] = min(dp[i],dp[i-dp2[i]]+1); } for(int i=1;i<=m;i++){ int x; cin>>x; if(dp[x]==1e9){ cout<<"oo"<<endl; }else{ cout<<dp[x]<<endl; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...