Pagini recente » Cod sursa (job #260234) | Cod sursa (job #1873659) | Cod sursa (job #917788) | Cod sursa (job #741286) | Cod sursa (job #2779420)
#include <fstream>
using namespace std;
const int N = 16000;
int v[ N ];
int main() {
ifstream fin ( "transport.in" );
ofstream fout ( "transport.out" );
int n, t, i, st, dr, mij, s, ok, tr;
fin >> n >> t;
for ( i = 0; i < n; i++ )
fin >> v[ i ];
st = 0;
dr = N * N;
while ( dr - st > 1 ){
mij = ( st + dr ) / 2;
i = 0;
ok = 0;
tr = 0;
while ( i < n ){
s = 0;
while ( s + v[ i ] <= mij && i < n ){
s += v[ i ];
i++;
}
if ( v[ i ] > mij ){
ok = 1;
i++;
}
tr++;
}
if ( tr > t || ok == 1 )
st = mij + 1;
else
dr = mij;
}
fout << st;
return 0;
}