Pagini recente » Cod sursa (job #1222963) | Cod sursa (job #987416) | Cod sursa (job #334116) | Cod sursa (job #1091882) | Cod sursa (job #2600286)
#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 = v[1], nr = 1;
for ( int i = 2; 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 = 0;
f >> n >> k;
for ( i = 1; i <= n; i++ ){
f >> v[i];
dr += v[i];
}
st = 1;
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;
}