Pagini recente » Cod sursa (job #65235) | Cod sursa (job #2479909) | Cod sursa (job #3173479) | Cod sursa (job #1266792) | Cod sursa (job #2820030)
#include <fstream>
using namespace std;
const int N = 5001;
int g [ N ], p [ N ], profit [ N ][ 2 * N ];
int main ( ) {
ifstream fin ( "rucsac.in" );
ofstream fout ( "rucsac.out" );
int n, G, i, j, s = 0;
fin >> n >> G;
for ( i = 1; i <= n; i++ )
fin >> g [ i ] >> p [ i ];
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= G; j++ )
if ( j >= g [ i ] )
profit [ i % 2 ][ j ] = max ( profit [ 1 - i % 2 ][ j ], p [ i ] + profit [ 1 - i % 2 ][ j - g [ i ] ] );
else
profit [ i % 2 ][ j ] = profit [ 1 - i % 2 ][ j ];
for ( i = 1; i <= G; i++ )
s = max ( s, profit [ n % 2 ][ i ] );
fout << s;
return 0;
}