Pagini recente » Cod sursa (job #1056402) | Cod sursa (job #460646) | Cod sursa (job #3231294) | Cod sursa (job #713538) | Cod sursa (job #3261620)
#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,sol;
int main()
{
f>>N>>K;
for(i=1;i<=N;i++)
{f>>v[i];
suma=suma+v[i];
if(v[i]>vmax)
vmax=v[i];
}
l1=vmax;l2=suma;sol=l2;
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;
sol=C;
}
else
l1=C+1;
}
g<<sol;
f.close();
g.close();
return 0;
}