Pagini recente » Borderou de evaluare (job #3323603) | Cod sursa (job #2367551) | Cod sursa (job #3341744) | Cod sursa (job #1934220) | Cod sursa (job #3314411)
#include <bits/stdc++.h>
using namespace std;
int main() {
#ifndef LOCAL
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
size_t N;
size_t G;
if (!(cin >> N >> G)) {
return 1;
}
vector<size_t> W(N + 1);
vector<size_t> C(N + 1);
for (size_t i = 1; i <= N; ++i) {
if (!(cin >> W[i] >> C[i])) {
return 1;
}
}
vector<size_t> D(G + 1, 0);
for (size_t i = 1; i <= N; ++i) {
for (size_t j = G; static_cast<int>(j) >= static_cast<int>(W[i]); --j) {
D[j] = max(D[j], D[j - W[i]] + C[i]);
}
}
cout << D[G] << '\n';
return 0;
}