Maximum Candies Allocated to K Children LeetCode solution in C++

1
class Solution {
2
public:
3
bool canSplit(vector<int> &candies, long long k, long long mid) {
4
long long split = 0;
5
for (int i = 0; i < candies.size(); ++i) {
6
split += candies[i] / mid;
7
}
8
if (split >= k)
9
return true;
10
else
11
return false;
12
}
13

14
int maximumCandies(vector<int> &candies, long long k) {
15
long long sum = 0;
16
for (int i = 0; i < candies.size(); ++i) {
17
sum += candies[i];
18
}
19
long long start = 1, end = sum / k;
20
long long ans = 0;
21
while (start <= end) {
22
long long mid = (start + end) / 2;
23
if (canSplit(candies, k, mid)) {
24
ans = mid;
25
start = mid + 1;
26
} else {
27
end = mid - 1;
28
}
29
}
30
return ans;
31
}
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0