Pagini recente » Cod sursa (job #1630631) | Cod sursa (job #2800281) | Cod sursa (job #1074944) | Cod sursa (job #1315846) | Cod sursa (job #247926)
Cod sursa(job #247926)
#include <stdio.h>
#define DIM 16005
int n,k,max,sum,sol;
int a[DIM];
void read ()
{
int i;
scanf ("%d%d",&n,&k);
for (i=1; i<=n; ++i)
{
scanf ("%d",&a[i]);
if (a[i]>max)
max=a[i];
sum+=a[i];
}
}
void solve ()
{
int in=max,sf=sum,mij,i,s,nrs;
while (in<=sf)
{
mij=(in+sf)/2;
s=nrs=0;
for (i=1; i<=n; ++i)
{
s+=a[i];
if (s>mij)
{
s=a[i];
++nrs;
}
}
++nrs;
if (nrs>k)
in=mij+1;
else
{
sol=mij;
sf=mij-1;
}
}
}
int main ()
{
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
read ();
solve ();
printf ("%d",sol);
return 0;
}