Pagini recente » Cod sursa (job #2982005) | Cod sursa (job #970196) | Cod sursa (job #2115187) | Cod sursa (job #2076610) | Cod sursa (job #3162651)
#include <iostream>
#include <fstream>
using namespace std;
int n ,k , i, c=-1, nr, S, mij, st, dr, s, a, b, v[16001] ;
ifstream f ("transport.in");
ofstream g ("transport.out");
int main()
{
f >> n >> k ;
for(i = 1; i <= n ; ++i)
{
f >> v[i] ;
a += v[i] ;
if(v[i] > c)
c = v[i] ;
}
st = c;
dr = a;
while(st <= dr)
{
mij = (st + dr) / 2 ;
nr = 1 ;
s = 0 ;
for(i = 1; i <= n; ++i)
if(s + v[i] <= mij)
s += v[i];
else
{
++nr ;
s = v[i] ;
}
if(nr > k)
st = mij + 1 ;
else
{
S = mij ;
dr = mij - 1 ;
}
}
g << S ;
return 0 ;
}