Pagini recente » Cod sursa (job #2633942) | Cod sursa (job #2834282) | Cod sursa (job #2628295) | Cod sursa (job #3272355) | Cod sursa (job #371104)
Cod sursa(job #371104)
# include <stdio.h>
int q,min,i,k,n,a[20000],sum;
void verif (int c)
{ int i,s=0;
q=0;
for (i=1;i<=n;i++)
{
s=s+a[i];
if (a[i]>c)
q=k+1;
if (s>c)
{
q++;
s=a[i];
}
}
if (s!=0)
q++;
}
int caut (int i,int j)
{
int mij=(i+j)/2;
verif (mij);
if (i>=j)
{
if (q<=k)
if (mij<min)
min=mij;
return 0;
}
if (q>k)
caut (mij+1,j);
else
{
if (min>mij)
min=mij;
caut (i,mij-1);
}
}
int main ()
{
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
scanf ("%i%i",&n,&k);
for (i=1;i<=n;i++)
{
scanf ("%i",&a[i]);
sum=sum+a[i];
}
min=sum;
caut (1,sum);
printf ("%i",min);
return 0;
}