Submission #1181490

#TimeUsernameProblemLanguageResultExecution timeMemory
1181490ollelKitchen (BOI19_kitchen)C++20
0 / 100
12 ms584 KiB
#pragma GCC optimize ("03") #include <bitset> #pragma GCC target ("avx2") using namespace std; #include <bits/stdc++.h> #define rep(i,a,b) for (int i = a; i < b; i++) #define pb push_back typedef long long ll; typedef vector<ll> vi; int n, m, k; vector<int> arr, brr; mt19937 rng(6215); ll rand(ll maxr) { return uniform_int_distribution<ll>(0, maxr)(rng); } void solve() { cin >> n >> m >> k; arr.resize(n); brr.resize(m); rep(i,0,n) cin >> arr[i]; rep(i,0,m) cin >> brr[i]; rep(i,0,n) { if (arr[i] < k) { cout << "Impossible\n"; return; } } int sum = 0; rep(i,0,m) sum += brr[i]; vector<int> dp(sum + 1, 1e9); dp[0] = 0; rep(i,0,m) { for (int j = sum; j >= 0; j--) { if (dp[j] == 1e9) continue; if (j + brr[i] <= sum) { dp[j + brr[i]] = min(dp[j + brr[i]], dp[j] + min(brr[i], n)); } } } int ans = -1; rep(j,0,sum+1) { if (dp[j] >= n * k && dp[j] != 1e9) { ans = j; break; } } if (ans == -1) { cout << "Impossible\n"; } else { rep(i,0,n) ans -= arr[i]; cout << ans << endl; } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); solve(); }
#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...