Pagini recente » Cod sursa (job #2030035) | Cod sursa (job #1093394) | Cod sursa (job #2032013) | Cod sursa (job #2467681) | Cod sursa (job #1708579)
# include <stdio.h>
# include <stdlib.h>
# define MAX_N 16000
int v[MAX_N];
int N, K;
int sePoate( int c ) {
int i, s, j;
s = 0;
j = 1;
for ( i = 0; i < N; i ++ )
if ( s + v[i] <= c )
s += v[i];
else if ( v[i] <= c ) {
s = v[i];
j ++;
} else
return 0;
return j <= K;
}
int main() {
FILE *fin = fopen( "transport.in", "r" ), *fout = fopen( "transport.out", "w" );
int i, pas, pos;
fscanf( fin, "%d%d", &N, &K );
for ( i = 0; i < N; i ++ )
fscanf( fin, "%d", &v[i] );
pos = 0;
for ( pas = ( 1 << 30 ); pas > 0; pas >>= 1 )
if ( !sePoate( pos + pas ) )
pos += pas;
fprintf( fout, "%d", pos + 1 );
fclose( fin );
fclose( fout );
return 0;
}