Raslboyy

1

Nov 12th, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <iostream>
  2. //#include <chrono>
  3. //#include <fstream>
  4. //#include <bits/stdc++.h>
  5. #include <vector>
  6.  
  7. #define mp make_pair
  8. #define pb push_back
  9. #define eb emplace_back
  10. #define f first
  11. #define s second
  12. #define sz(x) (int)x.size()
  13. #define all(x) begin(x), end(x)
  14. #define rall(x) rbegin(x), rend(x)
  15.  
  16. using namespace std;
  17.  
  18. typedef unsigned long long ull;
  19. typedef long long ll;
  20. typedef long double ld;
  21. typedef pair<int, int> pi;
  22. typedef pair<ll, ll> pl;
  23.  
  24. int n, k;
  25. vector<int> vec;
  26.  
  27. bool check(int len) {
  28.     int count = 0;
  29.     int in = 0;
  30.     int cur_sum = 0;
  31.     while (in < vec.size()) {
  32.         cur_sum += vec[in];
  33.         if (cur_sum >= len) {
  34.             count++; cur_sum = 0;
  35.         }
  36.         in++;
  37.     }
  38.     return count + 1 >= k;
  39. }
  40.  
  41. int main() {
  42.     /*ifstream cin("in.txt");
  43.     ofstream cout("out.txt");
  44.     auto start_time = chrono::high_resolution_clock::now();*/
  45.  
  46.     ios::sync_with_stdio(false);
  47.     cin.tie(0);
  48.     cout.tie(0);
  49.  
  50.    
  51.     cin >> n >> k;
  52.     vec.assign(n - 1, 0);
  53.    
  54.     int prev; cin >> prev;
  55.     int l = 0, r = prev;
  56.     for (int i = 0; i < n - 1; i++) {
  57.         cin >> vec[i];
  58.         swap(prev, vec[i]);
  59.         vec[i] = prev - vec[i];
  60.     }
  61.     r = prev - r + 1;
  62.    
  63.     while (l + 1 < r) {
  64.         int mid = (l + r) / 2;
  65.         if (check(mid))
  66.             l = mid;
  67.         else
  68.             r = mid;
  69.     }
  70.     cout << l << "\n";
  71.  
  72.     /*auto end_time = chrono::high_resolution_clock::now();
  73.     chrono::duration<double> duration = end_time - start_time;
  74.     cout << duration.count() << "\n";
  75.     cin.close();
  76.     cout.close();*/
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment