Pagini recente » Cod sursa (job #1492928) | Cod sursa (job #1023902) | Cod sursa (job #1091045) | Cod sursa (job #2187220) | Cod sursa (job #2668852)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
const int NMAX = 5001;
int N, WEIGHT, weight[NMAX], power[NMAX], dp[2 * NMAX];
int main() {
f >> N >> WEIGHT;
for(int i = 1;i <= N;++i) f >> weight[i] >> power[i];
dp[0] = 1;
for(int i = 1;i <= N;++i) {
for(int j = WEIGHT;j >= weight[i];--j)
if(dp[j - weight[i]])
dp[j] = max(dp[j], dp[j - weight[i]] + power[i]);
}
int sol{};
for(int i = 1;i <= WEIGHT;++i)
sol = max(sol, dp[i]);
g << sol - 1;
return 0;
}