Pagini recente » Cod sursa (job #3143100) | Cod sursa (job #2047900) | Cod sursa (job #2129407) | Cod sursa (job #145649) | Cod sursa (job #817283)
Cod sursa(job #817283)
#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,k1,flag=1;
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++)
{
if(s+v[i]<=m) s+=v[i];
else
{
t++;
s=v[i];
}
}
if(s) t++;
if(t<=k)
{
stop=m-1;
k1=m;
}
else start=m+1;
}
if(t<=k) printf("%d", m);
else printf("%d", k1);
return 0;
}