Pagini recente » Cod sursa (job #357353) | Cod sursa (job #2111661) | Cod sursa (job #2869369) | Cod sursa (job #1070709) | Cod sursa (job #3222712)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int NMAX = 5001;
const int GMAX = 10001;
int N, G;
int P[NMAX];
int W[NMAX];
//int DP[NMAX][GMAX]; /// DP[i][j] = profitul maxim pt un rucsac de greutate j, luand in calcul primele i greutati
/// DP[i][j] = max{DP[i-1][j], DP[i-1][j - W[i]] + P[i]
/// ^we don't take the ith object
/// ^we take it
int DP[GMAX];
int main()
{
fin >> N >> G;
for(int i = 1; i <= N; i++) {
fin >> W[i] >> P[i];
}
for(int i = 1; i <= N; i++) {
for(int j = G; j >= W[i]; j--) {
DP[j] = max(DP[j], DP[j - W[i]] + P[i]);
}
}
fout << DP[G];
return 0;
}