Submission #1005608

#TimeUsernameProblemLanguageResultExecution timeMemory
1005608coolboy19521Kitchen (BOI19_kitchen)C++17
0 / 100
30 ms1200 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) { cout << "IMPOSSIBLE"; return 0; } fill(dp, dp + sz * sz, -1); dp[0] = 0; for (int i = 1; i <= m; i++) { for (int j = sz * sz - 1; j >= b[i]; j--) { if (dp[j - b[i]] != -1) { 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; } } 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...