Pagini recente » Cod sursa (job #1852714) | Cod sursa (job #1522579) | Cod sursa (job #221565) | Cod sursa (job #1539883) | Cod sursa (job #2068196)
#include <cstdio> // 60
#define MAXN 16000
#define MAX 999999
using namespace std;
int v[MAXN + 5], n;
int sepoate( int cost ) {
int aux, r, i;
r = 0;
aux = cost;
for( i = 1; i <= n; i++ ) {
if( v[i] > cost )
return MAX;
if( aux >= v[i] )
aux -= v[i];
else {
aux = cost;
r++;
i--;
}
}
return r;
}
int main( ) {
int k, i, r, pas;
freopen( "transport.in", "r", stdin );
freopen( "transport.out", "w", stdout );
scanf( "%d%d", &n, &k );
for( i = 1; i <= n; i++ )
scanf( "%d", &v[i] );
pas = 1 << 30;
r = 0;
while( pas != 0 ) {
if( sepoate( r + pas ) >= k )
r += pas;
pas /= 2;
}
printf( "%d", r + 1 );
return 0;
}