Submission #1005618

#TimeUsernameProblemLanguageResultExecution timeMemory
1005618coolboy19521Kitchen (BOI19_kitchen)C++17
100 / 100
21 ms1116 KiB
#pragma GCC optimize("Ofast") #include"bits/stdc++.h" #define int long long using namespace std; const int sz = 3e2 + 6; int a[sz], b[sz]; int dp[sz * sz]; signed main() { cin.tie(nullptr)->sync_with_stdio(false); int n, m, k; cin >> n >> m >> k; int sm = 0; bool f = false; for (int i = 1; i <= n; i ++) { cin >> a[i]; sm += a[i]; if (a[i] < k) { f = true; } } for (int i = 1; i <= m; i ++) { cin >> b[i]; } if (f) { goto ex; } for (int i = 1; i <= m; i ++) { for (int j = sz * sz - 1; b[i] < j; j --) { if (dp[j - b[i]]) { dp[j] = max(dp[j], dp[j - b[i]] + min(b[i], n)); } } dp[b[i]] = max(dp[b[i]], min(b[i], n)); } for (int i = sm; i < sz * sz; i ++) { if (dp[i] >= n * k) { cout << i - sm; return 0; } } ex: 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...