Pagini recente » Cod sursa (job #206677) | Cod sursa (job #2250239) | Profil dornescuvlad | Monitorul de evaluare | Cod sursa (job #2892685)
#include <bits/stdc++.h>
using namespace std;
struct obj_info {
int weight;
int profit;
};
int n, g;
vector<obj_info> v;
int main(void) {
freopen("rucsac.in", "rt", stdin);
freopen("rucsac.out", "wt", stdout);
cin >> n >> g;
v.push_back({0, 0});
for (int i = 0; i < n; ++i) {
int w, p;
cin >> w >> p;
v.push_back({w, p});
}
int dp[g + 1] = {0};
for (int i = 1; i <= n; ++i) {
for (int j = g; j >= 0; --j) {
int curr_weight = v[i].weight;
if (curr_weight <= j) {
dp[j] = max(dp[j], dp[j - curr_weight] + v[i].profit);
}
}
}
cout << dp[g] << "\n";
return 0;
}