Samkit5025

Untitled

Sep 16th, 2022
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool check(vector<int> &a, int n, int h, int mid)
  5. {
  6.  
  7.     for (int i = 1; i < n; i++)
  8.     {
  9.         h -= min(a[i] - a[i - 1], mid);
  10.         if (h <= 0)
  11.             return true;
  12.     }
  13.  
  14.     if (h <= mid)
  15.         return true;
  16.     return false;
  17. }
  18.  
  19. int minimumJugCapacity(int N, int H, vector<int> &A)
  20. {
  21.     int start = 1;
  22.     int end = H;
  23.     int ans = 0;
  24.     while (start <= end)
  25.     {
  26.         int mid = (start + end) / 2;
  27.         if (check(A, N, H, mid))
  28.         {
  29.             ans = mid;
  30.             end = mid - 1;
  31.         }
  32.         else
  33.         {
  34.             start = mid + 1;
  35.         }
  36.     }
  37.     return ans;
  38. }
  39.  
  40. int main()
  41. {
  42.     int N, H;
  43.     cin >> N >> H;
  44.  
  45.     vector<int> A(N);
  46.     for (int i = 0; i < N; i++)
  47.         cin >> A[i];
  48.     cout << minimumJugCapacity(N, H, A) << endl;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment