Pagini recente » Cod sursa (job #1369219) | Cod sursa (job #2653314) | Monitorul de evaluare | Cod sursa (job #1819098) | Cod sursa (job #2150131)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int v[16002], n, k;
bool isOk(int a){
int st = 1;
for(int k = ::k; k != 0 && st <= n; k --){
int l = st, r = n;
while(l <= r){
int mid = (l + r) / 2;
if(v[mid] - v[st - 1] <= a) l = mid + 1;
else r = mid - 1;
}
st = r + 1;
}
return st > n;
}
int main(){
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; i ++)
scanf("%d", &v[i]), v[i] += v[i - 1];
int l = 1, r = v[n];
while(l <= r){
int mid = (l + r) / 2;
if(isOk(mid)) r = mid - 1;
else l = mid + 1;
}
printf("%d", l);
}