Pagini recente » Cod sursa (job #2557721) | Cod sursa (job #636213) | Cod sursa (job #1605574) | Cod sursa (job #1200011) | Cod sursa (job #625200)
Cod sursa(job #625200)
#include <stdio.h>
#define NMAX 16005
int A[NMAX];
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
int N, K, i, lo = 0, hi = 0;
scanf("%d %d", &N, &K);
for (i=1; i<=N; ++i) {
scanf("%d", &A[i]);
hi += A[i];
if (A[i] > lo)
lo = A[i];
}
while (lo < hi) {
int x = lo + (hi-lo)/2;
int required = 1, current = 0;
for (i=1; i<=N; ++i)
if (current+A[i] <= x)
current += A[i];
else {
++required;
current = A[i];
}
if (required <= K)
hi = x;
else
lo = x+1;
}
printf("%d", lo);
return 0;
}