fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. typedef pair<int, int> ii;
  6.  
  7. const int INF = 1e9;
  8. const ll LINF = 1e18;
  9.  
  10. const int N = 2e5 + 5;
  11.  
  12. int n, k;
  13. int x[N];
  14.  
  15. bool check(ll mx) {
  16. for (int i = 1; i <= n; i++) {
  17. if (x[i] > mx) return false;
  18. }
  19.  
  20. ll sum = 0, cnt = 1;
  21. for (int i = 1; i <= n; i++) {
  22. if (sum + x[i] > mx) {
  23. cnt++;
  24. sum = x[i];
  25. }
  26. else {
  27. sum += x[i];
  28. }
  29. }
  30.  
  31. return (cnt <= k);
  32. }
  33.  
  34. int main() {
  35. ios::sync_with_stdio(0); cin.tie(0);
  36. cin >> n >> k;
  37. for (int i = 1; i <= n; i++) cin >> x[i];
  38.  
  39. ll l = 1, r = 2e14, ans = -1;
  40. while (l <= r) {
  41. ll mid = (l + r) >> 1;
  42.  
  43. if (check(mid)) {
  44. ans = mid;
  45. r = mid - 1;
  46. }
  47. else {
  48. l = mid + 1;
  49. }
  50. }
  51.  
  52. cout << ans << '\n';
  53. }
Success #stdin #stdout 0.01s 5268KB
stdin
5 3
2 4 7 3 5
stdout
8