Submission #745833

#TimeUsernameProblemLanguageResultExecution timeMemory
745833vjudge1Kitchen (BOI19_kitchen)C++17
9 / 100
17 ms596 KiB
#include <iostream> #include <vector> using namespace std; bool dp[601][601]; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m, k; cin >> n >> m >> k; vector<int> a(n); int total_work = 0; for (int& x : a) { cin >> x; total_work += x; if (x < k) { cout << "Impossible\n"; return 0; } } int const difference_work = n * k; vector<int> b(m); for (int& x : b) cin >> x; dp[0][0] = true; for (int const& chef : b) { int const delta_d = min(chef, n); int const delta_t = chef; for (int d = 600; d >= delta_d; d--) { for (int t = 600; t >= delta_t; t--) { dp[d][t] |= dp[d - delta_d][t - delta_t]; // if (dp[d][t]) { // cout << "dp[" << d << "][" << t << "] possible!\n"; // } } } } for (int t = total_work; t <= 600; t++) { for (int d = difference_work; d <= 600; d++) { if (dp[d][t]) { cout << t - total_work << "\n"; return 0; } } } cout << "Impossible\n"; }
#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...