Pagini recente » Cod sursa (job #2650094) | Cod sursa (job #1151715) | Cod sursa (job #715525) | Cod sursa (job #2828559) | Cod sursa (job #2638223)
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
const int NMAX = 5000;
const int GMAX = 10000;
int N, G;
int dp[GMAX + 2];
pair <int, int> v[NMAX + 2];
int main()
{
cin >> N >> G;
for(int i = 1; i <= N; i++)
cin >> v[i].first >> v[i].second;
for(int i = 1; i <= N; i++)
for(int g = G; g >= v[i].first; g--)
dp[g] = max(dp[g], dp[g - v[i].first] + v[i].second);
cout << dp[G] << '\n';
return 0;
}