Pagini recente » Cod sursa (job #881211) | Cod sursa (job #850032) | Cod sursa (job #1017221) | Cod sursa (job #736881) | Cod sursa (job #967121)
Cod sursa(job #967121)
#include <cstdio>
int n, k, i, v[16001], s, max, st, dr, m, nrk;
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d%d", &n, &k);
for(i=1; i<=n; i++){
scanf("%d", &v[i]);
if(max<v[i])
max=v[i];
s+=v[i];
}
st=max; dr=s; s=0; int pp=0;
while(st<=dr){
m=(st+dr)/2; nrk=1; s=0;
for(i=1; i<=n; i++)
if(s+v[i]<m)
s+=v[i];
else{
nrk++;
s=v[i];
}
if(k<nrk)
st=m+1;
else
dr=m-1;
}
printf("%d", m);
return 0;
}