Pagini recente » Cod sursa (job #701712) | Cod sursa (job #2382285) | Cod sursa (job #2298004) | Cod sursa (job #801570) | Cod sursa (job #2286339)
#include <fstream>
#define NMAX 5010
#define WMAX 10010
std::ifstream fin("rucsac.in");
std::ofstream fout("rucsac.out");
int n, wMax;
int dp[WMAX];
int w[NMAX], p[NMAX];
inline int max(int x, int y) {
return x > y ? x : y;
}
int main() {
int i, j;
fin >> n >> wMax;
for (i = 1; i <= n; i++)
fin >> w[i] >> p[i];
for (i = 1; i <= n; i++)
for (j = wMax; j >= 1; j--)
if (w[i] <= j)
dp[j] = max(dp[j], dp[j - w[i]] + p[i]);
else
dp[j] = dp[j];
fout << dp[wMax] << '\n';
fout.close();
return 0;
}