Pagini recente » Cod sursa (job #1306651) | Cod sursa (job #256192) | Cod sursa (job #287316) | Monitorul de evaluare | Cod sursa (job #1453356)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int ls,ld,mij,v[16000],i,j,k,aux,maxi,nrTrans,n,maxi2;
int main()
{
fin>>n>>k;
for( i = 1 ; i <= n ; ++i )
{
fin>>v[ i ];
maxi2 += v[ i ];
if( v[ i ] > maxi )
maxi = v[ i ];
}
ls = maxi;
ld = maxi2;
while( ls < ld )
{
mij = ( ls + ld ) / 2;
for( i = 1 , aux = 0 , nrTrans = 1 ; i <= n ; ++i )
{
if( aux + v[ i ] > mij )
{
aux = v[ i ];
++nrTrans;
}
else
{
aux += v[ i ];
}
}
if( nrTrans > k )
ls = mij;
else
ld = mij;
}
fout<<ld;
return 0;
}