Pagini recente » Cod sursa (job #50347) | Cod sursa (job #2295483) | Cod sursa (job #1416217) | Cod sursa (job #2422812) | Cod sursa (job #3206000)
#include <bits/stdc++.h>
using namespace std;
int n, v[16005];
int transporturi( int cap ){
int r, s, i;
s = cap;
r = 1;
for( i = 0; i < n; i++ ){
s -= v[i];
if( s < 0 ){
s = cap - v[i];
r++;
}
}
return r;
}
int main(){
int k, i, stanga, dreapta, mijloc;
ifstream fin( "transport.in" );
ofstream fout( "transport.out" );
fin >> n >> k;
stanga = 0;
for( i = 0; i < n; i++ ){
fin >> v[i];
if( v[i] > stanga ){
stanga = v[i];
}
}
stanga--;
dreapta = 256000000;
while( dreapta - stanga > 1 ){
mijloc = ( stanga + dreapta ) / 2;
if( transporturi( mijloc ) > k ){
stanga = mijloc;
}
else{
dreapta = mijloc;
}
}
fout << dreapta;
return 0;
}