Pagini recente » Cod sursa (job #2149010) | Cod sursa (job #1489165) | Cod sursa (job #1380191) | Cod sursa (job #2068991) | Cod sursa (job #1714250)
#include <fstream>
#define Pe pair <int, int>
#define mp make_pair
#define fi first
#define se second
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
const int MaxN = 5005;
Pe v[MaxN];
int dp[MaxN];
int n, g, maxx;
int main() {
cin >> n >> g;
for (int i = 1; i <= n; ++i) {
cin >> v[i].fi >> v[i].se;
}
for (int i = 1; i <= n; ++i) {
for (int j = g; j >= 0; --j) {
if ((j == 0 or dp[j]) and j <= g - v[i].fi) {
dp[j + v[i].fi] = max(dp[j + v[i].fi], dp[j] + v[i].se);
}
}
}
for (int i = 1; i <= g; ++i) {
maxx = max(maxx, dp[i]);
}
cout << maxx << '\n';
return 0;
}