Pagini recente » Diferente pentru problema/calatorie1 intre reviziile 1 si 2 | Diferente pentru onis-2014/clasament-final intre reviziile 20 si 21 | Atasamentele paginii Profil RaduXD1 | Istoria paginii utilizator/bismarck | Cod sursa (job #2468654)
#include <cstdio>
int a[16101],N,K;
int basta(int cap)
{
int i,transp=1,sc=0;
for(i=1;i<=N;i++)
{
sc+=a[i];
if(sc>cap)
{
sc=a[i];
transp++;
}
}
return transp<=K;
}
int main()
{
FILE *f=fopen("transport.in","r");
fscanf(f,"%d%d",&N,&K);
int i,mn=160001;
for(i=1;i<=N;i++)
{
fscanf(f,"%d",&a[i]);
if(a[i]<mn)mn=a[i];
}
int li=mn,lf=1000000000,m;
while(li<=lf)
{
m=(li+lf)/2;
if(basta(m))
lf=m-1;
else
li=m+1;
}
f=fopen("transport.out","w");
fprintf(f,"%d",li);
return 0;
}