Pagini recente » Cod sursa (job #2618931) | Cod sursa (job #930346) | Cod sursa (job #1722971) | Cod sursa (job #2318573) | Cod sursa (job #1663427)
#include <stdio.h>
using namespace std;
int main(){
freopen ("transport.in", "r", stdin);
freopen ("transport.out", "w", stdout);
long long n, k, l1, l2, i, kv, m, s, c;
long long v[16001];
scanf ("%lld %lld", &n, &k);
l1=l2=0;
for (i=1; i<=n; i++){
scanf ("%lld", &v[i]);
l2+=v[i];
if (v[i]>l1)
l1=v[i];
}
while (l1<=l2){
m=(l1+l2)/2;
for (i=1, kv=0; i<n; kv++){
s=0;
while (s<=m && i!=n+1){
s+=v[i];
i++;
}
i--;
}
if (s>m && i==n)
kv++;
if (kv==k){
c=m;
l2=m-1;
}
else if (kv>k)
l1=m+1;
else
l2=m-1;
}
printf ("%lld", c);
}