Maximum Candies Allocated to K Children LeetCode solution in C++
1class Solution {2public:3bool canSplit(vector<int> &candies, long long k, long long mid) {4long long split = 0;5for (int i = 0; i < candies.size(); ++i) {6split += candies[i] / mid;7}8if (split >= k)9return true;10else11return false;12}1314int maximumCandies(vector<int> &candies, long long k) {15long long sum = 0;16for (int i = 0; i < candies.size(); ++i) {17sum += candies[i];18}19long long start = 1, end = sum / k;20long long ans = 0;21while (start <= end) {22long long mid = (start + end) / 2;23if (canSplit(candies, k, mid)) {24ans = mid;25start = mid + 1;26} else {27end = mid - 1;28}29}30return ans;31}32};