Pagini recente » Cod sursa (job #366272) | Cod sursa (job #390115) | Cod sursa (job #1397421) | Cod sursa (job #1191972) | Cod sursa (job #272202)
Cod sursa(job #272202)
#include<stdio.h>
int v[17000],max1,sum,p,u,q,i,j,ok,k,l,m,n;
int caut(int val){
int sum=0,lvl=1;
for(i=1;i<=n;i++)
{sum+=v[i];
if(sum>val)
{sum=v[i];lvl++;
if(lvl>k)return 0;}
}
return 1;}
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]);
sum+=v[i];
if(v[i]>max1)max1=v[i];
}
p=max1;u=sum;
while(p<u)
{m=(p+u)>>1;
ok=caut(m);
if(ok)
{sum=m;u=m;}
else
p=m+1;
}
printf("%d",sum);
return 0;}