Pagini recente » Cod sursa (job #2823890) | Cod sursa (job #2528757) | Cod sursa (job #1112961) | Cod sursa (job #2781487) | Cod sursa (job #2710475)
#include <stdio.h>
#define MAX 1000000
int v[ 1001 ], p[ 1001 ];
int dp[ 2 ][ MAX ];
int g, w;
int max( int a, int b ){
if( a >= b )
return a;
return b;
}
int main()
{
FILE *fin = fopen( "energii.in", "r" );
fscanf( fin, "%d%d", &g, &w );
for( int i = 1; i <= g; i++ )
fscanf( fin, "%d %d", &v[ i ], &p[ i ] );
fclose( fin );
for( int i = 1; i <= g; i++ )
for( int j = p[ i ]; j <= MAX; j++ )
dp[ i & 1 ][ j ] = max( dp[ i & 1 ][ j ], dp[ 1 - ( i & 1 ) ][ j - p[ i ] ] + v[ i ] );
int i = 1;
while( i <= MAX && dp[ g & 1 ][ i ] < w )
++i;
FILE *fout = fopen( "energii.out", "w" );
fprintf( fout, "%d\n", i );
fclose( fout );
return 0;
}