Pagini recente » Cod sursa (job #719151) | Cod sursa (job #373733) | Cod sursa (job #13984) | Cod sursa (job #679725) | Cod sursa (job #3253026)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int NMAX = 5000;
int N, G;
pair <int, int> v[NMAX+1];
int dp[10001];
int main()
{
fin >> N >> G;
for(int i=1; i<=N; i++)
fin >> v[i].first >> v[i].second;
for(int i=1; i<=N; i++)
{
for(int w=G; w>=v[i].first; w--)
dp[w] = max(dp[w-v[i].first]+v[i].second, dp[w]);
}
int ans = -1;
for(int i=0; i<=G; i++)
ans = max(ans, dp[i]);
fout << ans;
return 0;
}