Pagini recente » Cod sursa (job #1395507) | Cod sursa (job #1855365) | Cod sursa (job #275794) | Cod sursa (job #1280586) | Cod sursa (job #1655446)
#include<cstdio>
using namespace std;
int i,n,k,s=0,v[2001],y,inc,sf,med,ans;
int verif(int capacitate)
{
int j,x=0,ct=1;
for(j=1;j<=n;j++)
{
if(v[j]>capacitate)
return 0;
if(x+v[j]<=capacitate)
x+=v[j];
else
{
ct++;
x=v[j];
}
}
if(ct<=k)
return 1;
return 0;
}
FILE *in,*out;
int main ()
{
in=fopen("transport.in","r");
out=fopen("transport.out","w");
fscanf(in,"%d %d",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(in,"%d ",&v[i]);
s+=v[i];
}
inc=1;
sf=s;
while(inc<=sf)
{
med=(inc+sf)/2;
y=verif(med);
if(y==0)
inc=med+1;
else
{
sf=med-1;
ans = med;
}
}
fprintf(out,"%d",ans);
return 0;
}