Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool check(vector<int> &A, int B, int k)
- {
- int cnt=0,sum=0;
- for(int i=0;i<A.size();i++)
- { if(A[i]>k) return 0;
- if(sum+A[i]<=k)
- {
- sum+=A[i];
- }
- else
- {
- sum=A[i];
- cnt++;
- }
- }
- return cnt<B;
- }
- int Solution::books(vector<int> &A, int B) {
- if(A.size()<B) return -1;
- int low=0,high=INT_MAX,ans=-1;
- while(low<=high)
- {
- int mid=low+(high-low)/2;
- if(check(A,B,mid))
- {
- ans=mid;
- high=mid-1;
- }
- else
- {
- low=mid+1;
- }
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement