Pagini recente » Cod sursa (job #3189476) | Cod sursa (job #2594867) | Cod sursa (job #118146) | Cod sursa (job #391183) | Cod sursa (job #2596690)
#include <fstream>
using namespace std;
ifstream f ( "transport.in" );
ofstream g ( "transport.out" );
const int N = 16001;
int v[N], k, n;
bool verif ( int x ){
int S = 0, nr = 1;
for ( int i = 1; i <= n; i++ ){
if ( S + v[i] <= x )
S += v[i];
else{
S = v[i];
nr++;
if ( nr > k )
return 0;
}
}
return 1;
}
int main()
{ int i, st, dr, sol;
f >> n >> k;
for ( i = 1; i <= n; i++ )
f >> v[i];
st = 1, dr = N * N;
while ( st <= dr ){
int mid = ( st + dr ) >> 1;
if ( verif ( mid ) == 1 ){
sol = mid;
dr = mid - 1;
}
else
st = mid + 1;
}
g << sol;
return 0;
}