제출 #530118

#제출 시각아이디문제언어결과실행 시간메모리
530118fatemetmhrKitchen (BOI19_kitchen)C++17
31 / 100
2 ms336 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define fi first #define se second #define all(x) x.begin(), x.end() const int maxn5 = 7e3 + 10; const ll inf = 1e18; ll a[maxn5], b[maxn5]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n, m, k; cin >> n >> m >> k; if(m > 16) return 0; ll sum = 0; for(int i = 0; i < n; i++){ cin >> a[i]; if(a[i] < k) return cout << "Impossible" << endl, 0; sum += a[i]; } for(int i = 0; i < m; i++) cin >> b[i]; ll ans = inf; for(int mask = 0; mask < (1 << m); mask++) if(__builtin_popcount(mask) >= k){ ll sum1 = 0, sum2 = 0; for(int i = 0; i < m; i++) if((mask >> i)&1){ sum1 += min(n, b[i]); sum2 += b[i]; } if(sum1 >= n * k && sum2 >= sum && ans >= sum2){ ans = sum2; //cout << mask << ' ' << sum1 << ' ' << sum2 << endl; } } if(ans == inf) cout << "Impossible" << endl; else cout << ans - sum << endl; }
#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...