Advertisement
at3107

Untitled

Jul 21st, 2019
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. bool check(vector<int> &A, int B, int k)
  2. {
  3.     int cnt=0,sum=0;
  4.     for(int i=0;i<A.size();i++)
  5.     {   if(A[i]>k) return 0;
  6.         if(sum+A[i]<=k)
  7.         {
  8.             sum+=A[i];
  9.         }
  10.         else
  11.         {
  12.             sum=A[i];
  13.             cnt++;
  14.         }
  15.     }
  16.     return cnt<B;
  17. }
  18. int Solution::books(vector<int> &A, int B) {
  19.     if(A.size()<B) return -1;
  20.     int low=0,high=INT_MAX,ans=-1;
  21.     while(low<=high)
  22.     {
  23.         int mid=low+(high-low)/2;
  24.         if(check(A,B,mid))
  25.         {
  26.             ans=mid;
  27.             high=mid-1;
  28.         }
  29.         else
  30.         {
  31.             low=mid+1;
  32.         }
  33.     }
  34.     return ans;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement