Pagini recente » Cod sursa (job #2388564) | Cod sursa (job #1750530) | Cod sursa (job #1336393) | Cod sursa (job #1294817) | Cod sursa (job #1452153)
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
#define MAX(x, y) ((x) > (y) ? (x) : (y))
#define mid ((l + r) >> 1)
int N, K, X[16001];
int check(int v){
int s = 0, _k = 0;
for (int i = 1; i <= N && _k <= K; ++i){
if (s + X[i] <= v) s += X[i];
else s = X[i], ++_k;
}
return _k >= K;
}
int main(void)
{
int l = 0, r = 0, ans;
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d %d", &N, &K);
for (int i = 1; i <= N; ++i)
scanf("%d", &X[i]),
l = MAX(l, X[i]),
r += X[i];
while (l != r)
if (check(mid)) l = mid + 1;
else r = mid;
ans = mid;
while (check(ans++));
printf("%d", ans - 1);
return 0;
}