Cod sursa(job #1828470)
Utilizator | Data | 13 decembrie 2016 13:43:04 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
#define NMAX 5001
using namespace std ;
ifstream fin("rucsac.in") ;
ofstream fout("rucsac.out") ;
int n , G ;
int g[ 2 * NMAX ] , c[ 2 * NMAX ] , dp[ 2 * NMAX ] ;
int main()
{
fin >> n >> G ;
for( int i = 1; i <= n; ++i )
{
fin >> g[i] >> c[i] ;
}
for( int i = 1 ; i <= n ; i++ )
{
for( int j = G ; j >= 1; j-- )
dp[j] = max(dp[j],dp[j - g[i]] + c[i]) ;
}
fout << dp[G] << '\n' ;
return 0;
}