Submission #958171

#TimeUsernameProblemLanguageResultExecution timeMemory
958171ezzzayKitchen (BOI19_kitchen)C++14
100 / 100
36 ms1072 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define ff first #define ss second const int N=309; int a[N]; int b[N]; int dp[N*N]; signed main(){ int n,m,k; cin>>n>>m>>k; int s=0; for(int i=1;i<=n;i++){ cin>>a[i]; s+=a[i]; } for(int i=1;i<=m;i++)cin>>b[i]; for(int i=1;i<=n;i++){ if(a[i]<k){ cout<<"Impossible"; return 0; } } for(int i=1;i<=m;i++){ for(int j=90000;j>=b[i];j--){ if(dp[j-b[i]]>0 or j-b[i]==0){ dp[j]=max(dp[j],dp[j-b[i]]+min(b[i],n)); } } } for(int i=s;i<=90000;i++){ if(dp[i]>=n*k){ cout<< i-s; return 0; } } cout<<"Impossible"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...