Submission #584205

#TimeUsernameProblemLanguageResultExecution timeMemory
584205amunduzbaevKitchen (BOI19_kitchen)C++17
0 / 100
1 ms340 KiB
#include "bits/stdc++.h" using namespace std; #define ar array typedef int64_t ll; //~ #define int ll const int N = 305; int a[N], b[N]; bitset<N * N> dp; signed main(){ ios::sync_with_stdio(0); cin.tie(0); int n, m, k; cin>>n>>m>>k; for(int i=0;i<n;i++){ cin>>a[i]; if(a[i] < k){ cout<<"impossible\n"; return 0; } } for(int i=0;i<m;i++){ cin>>b[i]; } int sum = accumulate(a, a + n, 0); sort(b, b + m); int l = m, tot = 0; dp[0] = 1; for(int i=0;i<m;i++){ if(b[i] > n) { l = i; break; } tot += b[i]; dp |= (dp << b[i]); } int rem = 0, res = 1e9; while(l <= m && rem <= sum){ for(int j=max(sum - rem, k * n);j<=tot;j++){ if(dp[j]){ res = min(res, rem + j - sum); } } rem += b[l++], k--; } res = min(res, rem - sum); if(res == 1e9) cout<<"impossible\n"; else cout<<res<<"\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...