Pagini recente » Cod sursa (job #2302764) | Cod sursa (job #898046) | Cod sursa (job #1106056) | Cod sursa (job #1271146) | Cod sursa (job #100918)
Cod sursa(job #100918)
#include <stdio.h>
int main()
{
long gas=0,anr,nr,p,j,s,sum,k,t,i,n;
long a[16001];
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%ld%ld",&n,&k);
j=0;s=0;
for (i=1; i<=n; i++)
{
scanf("%ld",&a[i]);
s=s+a[i];
if (a[i]>j) j=a[i];
}
t=j;anr=0;
while (j<s)
{
if (j+1==s) anr++;
if (anr==2) break;
p=(j+s)/2;nr=0;
i=0;sum=0;
while (i<=n)
{
i++;
if (sum+a[i]<=p) sum=sum+a[i];
else {
sum=0;
i--;
nr++;
}
}
nr++;
if (nr<=k)
{
gas=1;
t=p;
s=p;
}
else j=p;
}
if (gas) printf("%ld\n",t);
return 0;
}