Pagini recente » Clasamentul arhivei de probleme | Cod sursa (job #2546424) | Cod sursa (job #1975442) | Borderou de evaluare (job #2284685) | Cod sursa (job #3143508)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n,g,dp[10005];
int main()
{
cin >> n >> g;
vector<pair<int,int>> v(n+1);
for(int i=1; i <= n; i++)
cin >> v[i].first >> v[i].second;
for(int i = 1; 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];
return 0;
}