Pagini recente » Cod sursa (job #1860453) | Cod sursa (job #1136199) | Cod sursa (job #714411) | Cod sursa (job #1969168) | Cod sursa (job #1927276)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
#define MAXN 5001
#define MAXG 10001
#define Pair pair<int, int>
int n, g;
vector<Pair> costuri;
int rezultate_partiale[1][MAXG];
void read() {
int x, y;
cin >> n >> g;
for (int i = 0; i < n; ++i) {
cin >> x >> y;
costuri.push_back(Pair(x, y));
}
}
void solve() {
int i;
for (i = 0; i < n; ++i) {
for (int G = g; G >= 1; --G) {
if (G - costuri[i].first >= 0) {
rezultate_partiale[0][G] =
max (rezultate_partiale[0][G - costuri[i].first] +
costuri[i].second, rezultate_partiale[0][G]);
}
}
}
}
void write() {
cout << rezultate_partiale[0][g] << endl;
}
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
read();
solve();
write();
return 0;
}