Advertisement
Fastrail08

Capacity to ship packages within D days

Aug 16th, 2022
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. int minWeightCap(vector<int> &v, int days){
  6.   int l = 0, r = 0, res = 0;
  7.   for(int i = 0; i < (int) v.size(); i++){
  8.     l = max(l, v[i]);
  9.     r += v[i];
  10.   }
  11.   while(l <= r){
  12.     int mid = l + (r - l) / 2;
  13.     int daysReq = 1, weightSum = 0;
  14.     for(int i = 0; i < (int) v.size(); i++){
  15.       weightSum += v[i];
  16.       if(weightSum > mid){
  17.         daysReq++;
  18.         weightSum = v[i];
  19.       }
  20.     }
  21.     if(daysReq <= days){
  22.       res = mid;
  23.       r = mid - 1;
  24.     }
  25.     else{
  26.      l = mid + 1;
  27.     }
  28.   }
  29.   return res;
  30. }
  31.  
  32. int main()
  33. {
  34.     int n;
  35.     cin >> n;
  36.     vector<int> v(n);
  37.     for(int i = 0; i < n; i++)
  38.       cin >> v[i];
  39.     int days;
  40.     cin >> days;
  41.     cout << minWeightCap(v, days) << '\n';
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement