Pagini recente » Cod sursa (job #211294) | Cod sursa (job #431918) | Cod sursa (job #2242330) | Cod sursa (job #138487) | Cod sursa (job #801974)
Cod sursa(job #801974)
#include<stdio.h>
int n,min,max,x,v[16005],i,last,o;
int ok(int l)
{
int s=0,k=0;
for(i=1;i<=n;i++)
{
s+=v[i];
if(i==n)
{
if(s>0)
{k+=s/x+1;}
break;
}
if(s>l)
{
s=v[i];
k++;
}
}
if(k>o)
return 0;
return 1;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&o);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
if(v[i]>min)
{
min=v[i];
}
max+=v[i];
}
while(min<=max)
{
x=(min+max)/2;
if(ok(x))
{
last=x;
max=x-1;
}
else
{
min=x+1;
}
}
printf("%d",last);
return 0;
}