Pagini recente » Cod sursa (job #2751314) | Cod sursa (job #103397) | Cod sursa (job #1808632) | Cod sursa (job #1594545) | Cod sursa (job #1174580)
#include <cstdio>
#define MAXN 5000
#define MAXG 10000
struct obj{
int w, p;
};
obj v[MAXN];
long long profit[MAXG+1];
int main () {
FILE *f, *g;
f = fopen( "rucsac.in", "r" );
g = fopen( "rucsac.out", "w" );
int n, G;
fscanf( f, "%d%d", &n, &G );
for( int i = 0 ; i < n ; ++i )
fscanf( f, "%d%d", &v[i].w, &v[i].p );
for( int i = 1 ; i <= G ; ++i )
profit[i] = -1;
for( int i = 0 ; i < n ; ++i )
for( int j = G ; j >= 0 ; --j )
if( profit[j] != -1 && j + v[i].w <= G && profit[j + v[i].w] < profit[j] + v[i].p )
profit[j + v[i].w] = profit[j] + v[i].p;
fprintf( g, "%lld\n", profit[G] );
fclose( f );
fclose( g );
return 0;
}