Advertisement
Guest User

Untitled

a guest
Mar 1st, 2021
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. bool verify(int T, int n, int m, vector<int> & v) {
  8.     int projects = 0, nextStartDate = 0;
  9.  
  10.     for (int i = 0; i < n; i++) {
  11.         if (v[i] >= nextStartDate) {
  12.             projects++;
  13.             nextStartDate = v[i] + T;
  14.         }
  15.     }
  16.  
  17.     return (projects <= m);
  18. }
  19.  
  20. int main() {
  21.     int n, m;
  22.     cin >> n >> m;
  23.  
  24.     vector<int> v(n);
  25.  
  26.     for (int i = 0; i < n; i++) {
  27.         cin >> v[i];
  28.     }
  29.  
  30.     sort(v.begin(), v.end());
  31.  
  32.     int low = 1, high = 3e8, ans = -1;
  33.  
  34.     while (low < high) {
  35.         int mid = low + (high - low) / 2;
  36.  
  37.         if (verify(mid, n, m, v)) {
  38.             ans = mid;
  39.             high = mid - 1;
  40.         } else {
  41.             low = mid + 1;
  42.         }
  43.  
  44.     }
  45.  
  46.     cout << ans << "\n";
  47.  
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement