Pagini recente » Cod sursa (job #1789423) | Cod sursa (job #621967) | Cod sursa (job #2101270) | Cod sursa (job #1445605) | Cod sursa (job #2819777)
#include <fstream>
using namespace std;
const int N = 5001;
int g [ N ], p [ N ];
int main ( ) {
ifstream fin ( "rucsac.in" );
ofstream fout ( "rucsac.out" );
int n, G, i, j, s = 0;
int profit [ N ][ 2 * N ];
fin >> n >> G;
for ( i = 0; i <= n; i++ )
for ( j = 0 ; j <= n; j++ )
profit [ i ][ j ] = 0;
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 ][ j ] = max ( profit [ i - 1 ][ j ], p [ i ] + profit [ i - 1 ][ j - g [ i ] ] );
else
profit [ i ][ j ] = profit [ i - 1 ][ j ];
for ( i = 1; i <= G; i++ )
s = max ( s, profit [ n ][ i ] );
fout << s;
return 0;
}