Submission #921120

#TimeUsernameProblemLanguageResultExecution timeMemory
921120shoryu386Kitchen (BOI19_kitchen)C++17
0 / 100
1036 ms9816 KiB
#include <bits/stdc++.h> using namespace std; #define int long long main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, m, k; cin >> n >> m >> k; int buckets[n], balls[m]; for (int x = 0; x < n; x++) cin >> buckets[x]; for (int x = 0; x < m; x++) cin >> balls[x]; #define IMP cout << "Impossible"; return 0; bool dead = false; for (int x = 0; x < n; x++){ if (buckets[x] < k){ dead = true; } } if (dead) {IMP;} int bucketsum = 0; for (int x = 0; x < n; x++){ bucketsum += buckets[x]; } #define BSMAX 100000 bitset<BSMAX> hmm[n*k+1]; hmm[n*k][0] = 1; sort(balls, balls+m, greater<int>()); int sum = 0, ssum[m]; for (int x = m-1; x > -1; x--){ sum += balls[x]; ssum[x] = sum; } sum = 0; int psum[m]; for (int x = 0; x < n; x++){ sum += balls[x]; psum[x] = sum; } for (int z = n*k; z <= min(n*k, ssum[0]); z++){ hmm[max(0LL, z - min(balls[0], n))] |= (hmm[z] << balls[0]); } for (int x = 1; x < m; x++){ for (int z = n*k - psum[x-1]; z <= min(n*k, ssum[x]); z++){ hmm[max(0LL, z - min(balls[x], n))] |= (hmm[z] << balls[x]); } } int ans = -1; for (int x = bucketsum; x < BSMAX; x++){ if (hmm[0][x]){ ans = x-bucketsum; break; } } if (ans == -1) cout << "Impossible"; else cout << ans; }

Compilation message (stderr)

kitchen.cpp:6:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    6 | main(){
      | ^~~~
#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...