Pagini recente » Cod sursa (job #953220) | Cod sursa (job #210113) | Cod sursa (job #1471797) | Cod sursa (job #1375134) | Cod sursa (job #1483425)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int k,n,dg[16001],s=0,maxdg=0,i,st,dr,m,x,capa;
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>dg[i];
s=dg[i]+s;
if(maxdg<dg[i])
maxdg=dg[i];
}
st=maxdg;
dr=s+1;
while(st<=dr)
{
m=(st+dr)/2;
x=0;
for(i=1;i<=n;)
{
x++;
s=0;
while(s+dg[i]<=m)
s=s+dg[i++];
}
if(x<=k)
{
capa=m;
dr=m-1;
}
else
{
st++;
}
}
fout<<capa;
return 0;
}