Pagini recente » Iopds | Diferente pentru problema/unlock intre reviziile 7 si 18 | Borderou de evaluare (job #283224) | Borderou de evaluare (job #826453) | Cod sursa (job #3001356)
#include <fstream>
#define NMAX 5001
#define VALMAX 10001
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int w[NMAX], p[NMAX], dp[VALMAX];
int main() {
int n, g, i, j;
fin >> n >> g;
for ( i = 0; i < n; i++ )
fin >> w[i] >> p[i];
for ( i = 0; i < n; i++ ) ///dp[j] maximul care se poate obtine cand am rucsac de marime j
for ( j = g - w[i]; j >= 0; j-- )
dp[j + w[i]] = max(dp[j + w[i]], dp[j] + p[i]);
fout << dp[g];
return 0;
}