Pagini recente » Cod sursa (job #520655) | Cod sursa (job #271615) | Cod sursa (job #1479320) | Cod sursa (job #1986231) | Cod sursa (job #816385)
Cod sursa(job #816385)
#include<stdio.h>
int v[16000];
int main (){
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
int n,k,i,start,stop,m,max=-1,s=0,t;
scanf("%d%d", &n,&k);
for(i=0;i<n;i++)
{
scanf("%d", &v[i]);
s+=v[i];
if(v[i]>max) max=v[i];
}
start=max-1;
stop=s+1;
while(start<=stop)
{
m=(start+stop)/2;
t=0;
s=0;
for(i=0;i<n;i++)
{
s+=v[i];
if(s>=m)
{
t++;
s=v[i];
}
}
if(s) t++;
if(t<=k)
stop=m-1;
else start=m+1;
}
printf("%d", m);
return 0;
}