Submission #958157

#TimeUsernameProblemLanguageResultExecution timeMemory
958157ezzzayKitchen (BOI19_kitchen)C++14
20 / 100
112 ms231368 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*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=0;i<N;i++){ for(int j=0;j<N*N;j++)dp[i][j]=-1e9; } dp[0][0]=0; for(int i=1;i<=m;i++){ for(int j=b[i];j<=90000;j++){ dp[i][j] = max(dp[i-1][j], dp[i-1][j - b[i]] + min(b[i], N)); } } for (int i=s; i<=90000;i++) { if (dp[m][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...