Pagini recente » Cod sursa (job #316255) | Cod sursa (job #684867) | Cod sursa (job #2310688) | Cod sursa (job #3039371) | Cod sursa (job #371103)
Cod sursa(job #371103)
# include <stdio.h>
int q,min=32000,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];
}
caut (1,sum);
printf ("%i",min);
return 0;
}