Pagini recente » Cod sursa (job #2281390) | Cod sursa (job #1365631) | Cod sursa (job #2463614) | Cod sursa (job #166421) | Cod sursa (job #3261618)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int N,C,K,v[16001],i,vmax,suma,transp,l1,l2,s;
int main()
{
f>>N>>K;
for(i=1;i<=N;i++)
f>>v[i];
for(i=1;i<=N;i++)
{
suma=suma+v[i];
if(v[i]>vmax)
vmax=v[i];
}
l1=vmax;l2=suma;
while(l1<=l2)
{
C=(l1+l2)/2;
transp=1;s=0;
for(i=1;i<=N;i++)
{
if(s+v[i]<=C)
s=s+v[i];
else
{transp++;
s=v[i];
}
}
if(transp<=K)
l2=C-1;
else
l1=C+1;
}
g<<C;
f.close();
g.close();
return 0;
}