Cod sursa(job #3354934)
| Utilizator | Data | 21 mai 2026 11:20:44 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, g;
cin >> n >> g;
vector<pair<int, int>> v;
vector<int> dp(g + 1, 0);
for (int i = 0; i < n; i++)
{
int w, p;
cin >> w >> p;
v.push_back({w, p});
}
for (int i = 0; i < n; i++)
for (int j = g; j >= v[i].first; j--)
dp[j] = max(dp[j], dp[j - v[i].first] + v[i].second);
cout << dp[g] << endl;
}