Pagini recente » Istoria paginii runda/sfdhd/clasament | Cod sursa (job #1599097) | Cod sursa (job #2067948) | Cod sursa (job #2008434) | Cod sursa (job #2681029)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
ll n, x, maxim, pret[5005], pag[5005], pd[100005];
int main() {
fin >> n >> x;
for (int i = 1; i <= n; ++i)
fin >> pret[i], cin >> pag[i];
for (ll i = 1; i <= n; ++i) {
for (ll j = x; j >= 1; --j) {
if (j + pret[i] <= x) {
pd[j + pret[i]] = max(pd[j + pret[i]], pd[j] + pag[i]);
maxim = max(maxim, pd[j + pret[i]]);
}
}
if (pd[pret[i]] < pag[i] && pret[i] <= x) {
pd[pret[i]] = pag[i];
maxim = max(maxim, pd[pret[i]]);
}
}
fout << maxim;
return 0;
}