Advertisement
Farjana_akter

Untitled

Jan 12th, 2020
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long int vessel[1000000+5];
  4.  
  5. bool check(long long int n,long long int m,long long int mid)
  6. {
  7. long long int i,capacity=mid,sum=0,container=1;
  8. for(i=0;i<n;i++)
  9. {
  10. sum+=vessel[i];
  11. if(sum>capacity)
  12. {
  13. container++;
  14. sum=vessel[i];
  15. }
  16. }
  17. if(container<=m)
  18. return true;
  19. else
  20. return false;
  21. }
  22.  
  23. int main()
  24. {
  25. long long int cas,n,i,m,j,k,sum=0,t;
  26. cin>>t;
  27. for(cas=1; cas<=t; cas++)
  28. {
  29. cin>>n>>m;
  30. long long int mx=0;
  31. for(i=0; i<n; i++)
  32. {
  33. cin>>vessel[i];
  34. sum+=vessel[i];
  35. mx=max(mx,vessel[i]);
  36. }
  37. long long int low=mx,high=sum,mid,res=0;
  38. while(low<=high)
  39. {
  40. mid=(low+high)/2;
  41. if(check(n,m,mid)==true)
  42. {
  43. high=mid-1;
  44. res=mid;
  45. }
  46. else
  47. low=mid+1;
  48. }
  49. cout<<"Case "<<cas<<": "<<res<<endl;
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement