Pagini recente » Cod sursa (job #334323) | Cod sursa (job #3182008) | Cod sursa (job #2206382) | Cod sursa (job #2924017) | Cod sursa (job #2382459)
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int n, v[16000], k;
bool se_poate( int c )
{
int nrt = 0, cc = 0;
for ( int i = 0; i < n; i ++ )
{
if ( v[i] > c )
{
return false;
}
if ( v[i] > cc )
{
cc = c;
nrt ++;
}
cc -= v[i];
}
return (nrt <= k);
}
int main()
{
FILE *fin, *fout;
fin = fopen( "transport.in", "r" );
fout = fopen( "transport.out", "w" );
fscanf( fin, "%d%d", &n, &k );
int r = 0, pas = 1 << 28, i;
for ( i = 0; i < n; i ++ )
{
fscanf( fin, "%d", &v[i] );
}
while ( pas > 0 )
{
if ( !se_poate( r + pas ) )
{
r += pas;
}
pas /= 2;
}
fprintf( fout, "%d", r +1);
fclose( fin );
fclose(fout );
return 0;
}