Pagini recente » Cod sursa (job #621521) | Cod sursa (job #321950) | Cod sursa (job #819107) | Cod sursa (job #2491112) | Cod sursa (job #2426586)
#include <stdio.h>
int v[16000];
int main(){
FILE *fin, *fout;
fin = fopen( "transport.in", "r" );
fout = fopen( "transport.out", "w" );
int n, i, k, j, nrt, cc, c, p, r, ok;
fscanf( fin, "%d%d", &n, &k );
for ( i = 0; i < n; i ++ ){
fscanf( fin, "%d", &v[i] );
}
p = 1;
for ( i = 1; i < 28; i ++ )
p *= 2;
r = 0;
while ( p > 0 ){
c = p + r;
ok = 0;
nrt = cc = 0;
for ( i = 0; i < n; i ++ ){
if ( v[i] > c ){
ok = 1;
}
if ( v[i] > cc ){
cc = c;
nrt ++;
}
cc -= v[i];
}
if ( nrt > k ){
ok = 1;
}
if ( ok == 1 ){
r += p;
//printf( "%d %d\n", r, p );
}
p /= 2;
}
fprintf( fout, "%d", r + 1 );
fclose( fin );
fclose( fout );
return 0;
}