| 1234567891011121314151617181920212223242526 |
- static int max(int a, int b) {
- return a > b ? a : b;
- }
- static int min(int a, int b) {
- return a < b ? a : b;
- }
- int storeWater(int* bucket, int bucketSize, int* vat, int vatSize) {
- int maxk = 0;
- for (int i = 0; i < vatSize; i++) {
- maxk = max(maxk, vat[i]);
- }
- if (maxk == 0) {
- return 0;
- }
- int res = INT_MAX;
- for (int k = 1; k <= maxk && k < res; ++k) {
- int t = 0;
- for (int i = 0; i < bucketSize; ++i) {
- t += max(0, (vat[i] + k - 1) / k - bucket[i]);
- }
- res = min(res, t + k);
- }
- return res;
- }
|