Submission #1005460

#TimeUsernameProblemLanguageResultExecution timeMemory
1005460vjudge1Kitchen (BOI19_kitchen)C++17
0 / 100
1071 ms860 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int inf = 1e18; int n, m, k, res; int s1, s2, s3, s4, s5, s6, s7, l; int dp[100001]; int b[301]; signed main(){ cin >> n >> m >> k; s7 = inf; for(int i = 1; i <= n; i++){ cin >> l; s2 += l; s7 = min(s7, l); } for(int i = 1; i <= m; i++){ cin >> b[i]; s4 += b[i]; } for(int i = 0; i <= s4; i++) dp[i] = -inf; if(s7 < k){ cout << "Imposible"; exit(0); } dp[0] = 0; for(int i = 1; i <= m; i++){ for(int j = s4 - b[i]; j >= 0; --j){ if(dp[j] != inf){ dp[j + b[i]] = max(dp[j + b[i]], dp[j] + min(b[i], n)); } s3 = inf; for(int j = s2; j <= s4; j++){ if(dp[j] >= n * k) s3 = min(s3, j - s2); } } } if(s3 != inf) cout << s3; else 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...