Pagini recente » Cod sursa (job #2752420) | Cod sursa (job #2141708) | Cod sursa (job #133425) | Cod sursa (job #358029) | Cod sursa (job #268319)
Cod sursa(job #268319)
#include <stdio.h>
int n,k,v[16001];
bool ok(int a)
{
int nr=1,sum=0;
for(int i=1;i<=n;i++)
{ sum+=v[i];
if(sum>a)
{ nr++;
sum%=a;
}
if(nr>k) return 0;
}
return (nr<=k);
}
int c(int l,int r)
{
int m;
while(l<r)
{ m=l+(r-l)/2;
if(ok(m)) r=m-1;
else l=m+1;
}
return l+1;
}
int main()
{
int sum=0,max,vol;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
scanf("%d",&v[1]);
max=v[1]; sum=v[1];
for(int i=2;i<=n;i++)
{ scanf("%d",&v[i]);
sum+=v[i];
if(max<v[i]) max=v[i];
}
vol=c(max,sum);
printf("%d",vol);
fclose(stdin); fclose(stdout);
return 0;
}