Pagini recente » Cod sursa (job #1264853) | Cod sursa (job #1363346) | Istoria paginii utilizator/bolnot | Cod sursa (job #1956057) | Cod sursa (job #3221353)
// Made by https://github.com/bg16-2009
#include <algorithm>
#include <fstream>
std::ifstream fin("rucsac.in");
std::ofstream fout("rucsac.out");
int dp[10005];
int main() {
int valori[5005], greutati[10005], n, g;
fin >> n >> g;
for (int i = 1; i <= n; i++) {
fin >> greutati[i] >> valori[i];
}
for (int i = 1; i <= n; i++) {
for (int j = g; j >= 1; j--) {
if (j - greutati[i] > 0) {
if (dp[j - greutati[i]] != 0) {
dp[j] = std::max(dp[j], dp[j - greutati[i]] + valori[i]);
}
}
}
if (dp[greutati[i]] == 0) {
dp[greutati[i]] = valori[i];
}
}
int maxi = -1;
for (int i = 1; i <= g; i++) {
maxi = std::max(maxi, dp[i]);
}
fout << maxi;
return 0;
}