Submission #1151382

#TimeUsernameProblemLanguageResultExecution timeMemory
1151382LudisseyKitchen (BOI19_kitchen)C++20
100 / 100
38 ms1096 KiB
#include <bits/stdc++.h> #define sz(a) (int)a.size() #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define int long long using namespace std; const int MAXB=305; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n,m,K; cin >> n >> m >> K; priority_queue<pair<int,int>> pq; vector<int> a(n); vector<int> b(m); int sum=0; for (int i = 0; i < n; i++) { cin >> a[i]; sum+=a[i]; } for (int i = 0; i < m; i++) { cin >> b[i]; } vector<int> dp(MAXB*m,-1); dp[0]=0; for (int i = 0; i < m; i++) { for (int j = sz(dp)-1; j >= 0; j--) { if(dp[j]==-1) continue; dp[j+b[i]]=max(dp[j]+min(b[i],n), dp[j+b[i]]); } } int ans=-1; for (int i = sum; i < sz(dp); i++) { if(dp[i]>=K*n){ ans=i-sum; break; } } if(*min_element(all(a))<K) ans=-1; if(ans==-1) cout << "Impossible\n"; else cout << ans << "\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...