Submission #133028

#TimeUsernameProblemLanguageResultExecution timeMemory
133028E869120Kitchen (BOI19_kitchen)C++14
31 / 100
19 ms404 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; int N, M, K, S, A[309], B[309]; int solve(vector<int>R) { int s1 = 0, s2 = 0; for (int i = 0; i < R.size(); i++) { s1 += min(N, R[i]); s2 += R[i]; } if (s1 < N * K) return (1 << 30); if (s2 < S) return (1 << 30); return s2 - S; } int main() { cin >> N >> M >> K; for (int i = 0; i < N; i++) { cin >> A[i]; S += A[i]; if (A[i] < K) { cout << "Impossible" << endl; return 0; } } for (int i = 0; i < M; i++) cin >> B[i]; int ans = (1 << 30); for (int i = 0; i < (1 << M); i++) { vector<int> vec; for (int j = 0; j < M; j++) { if ((i / (1 << j)) % 2 == 1) vec.push_back(B[j]); } int ret = solve(vec); ans = min(ans, ret); } if (ans == (1 << 30)) cout << "Impossible" << endl; else cout << ans << endl; return 0; }

Compilation message (stderr)

kitchen.cpp: In function 'int solve(std::vector<int>)':
kitchen.cpp:10:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < R.size(); i++) {
                  ~~^~~~~~~~~~
#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...