Pagini recente » Cod sursa (job #2136052) | Cod sursa (job #262989) | Cod sursa (job #1348546) | Cod sursa (job #2668856) | Cod sursa (job #1714252)
#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[2 * 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;
}