Pagini recente » Cod sursa (job #1128320) | Cod sursa (job #96988) | Cod sursa (job #1269434) | Cod sursa (job #8249) | Cod sursa (job #3227321)
#include <fstream>
using namespace std;
int v[16005], n;
bool verif( int cap, int k ) {
int i, drum = 0, s = 0;
for( i = 0; i < n; i++ ) {
s += v[i];
if( s > cap ){
drum++;
s = v[i];
}
}
if( drum <= k ) {
return 1;
}
else {
return 0;
}
}
int main() {
ifstream fin ( "transport.in" );
ofstream fout ( "transport.out" );
int k, c, st, dr, mij, i, j, sum = 0, last = -1;
fin >> n >> k;
for( i = 0; i < n; i++ ) {
fin >> v[i];
sum += v[i];
}
st = 1;
dr = sum;
while( st <= dr ) {
mij = ( st + dr ) / 2;
if( verif( mij, k ) ) {
last = mij;
dr = mij - 1;
}
else {
st = mij + 1;
}
}
fout << last;
return 0;
}