Submission #938651

#TimeUsernameProblemLanguageResultExecution timeMemory
938651vjudge1Kitchen (BOI19_kitchen)C++17
20 / 100
70 ms3500 KiB
#include <bits/stdc++.h> #define int long long using namespace std; signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m,k; cin >> n >> m >> k; vector<int> a(n),b(m); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < m; i++) cin >> b[i]; int sum = 0LL; for (int i = 0; i < m; i++) sum+=b[i]; vector<vector<bool>> dp(m,vector<bool>(sum+1)); dp[0][0] = 1; dp[0][b[0]] = 1; for (int i = 1; i < m; i++) for (int j = 0; j <= sum; j++) { if (j-b[i] >= 0) dp[i][j] = (dp[i-1][j-b[i]] | dp[i-1][j]); else dp[i][j] = dp[i-1][j]; } /*for (int i = 0; i <= sum ;i++) { cout << "can " << i << ' ' << dp[m-1][i] << '\n'; }*/ int oth = 0; for (int i = 0; i < n; i++) oth+=a[i]; for (int i = oth; i <= sum; i++) if (dp[m-1][i]) { cout << i-oth << '\n'; return 0; } cout << "Impossible\n"; return 0; }
#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...