제출 #396455

#제출 시각아이디문제언어결과실행 시간메모리
396455KoDKitchen (BOI19_kitchen)C++17
31 / 100
3 ms300 KiB
#include <bits/stdc++.h> template <class T> using Vec = std::vector<T>; constexpr int INF = std::numeric_limits<int>::max() / 2; int main() { int N, M, K; std::cin >> N >> M >> K; Vec<int> A(N), B(M); for (auto& x: A) { std::cin >> x; } for (auto& x: B) { std::cin >> x; } if (std::any_of(A.begin(), A.end(), [&](const int x) { return x < K; })) { std::cout << "Impossible\n"; return 0; } const int whole = std::accumulate(A.begin(), A.end(), 0); int ans = INF; for (int set = 0; set < (1 << M); ++set) { int crit = N * K, sum = 0; for (int i = 0; i < M; ++i) { if (set >> i & 1) { crit -= std::min(B[i], N); sum += B[i]; } } if (crit <= 0 and sum >= whole) { ans = std::min(ans, sum - whole); } } if (ans == INF) { std::cout << "Impossible\n"; } else { std::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...