Pagini recente » Istoria paginii runda/brasov_city_challenge/clasament | Cod sursa (job #1714293) | Cod sursa (job #1175357) | Cod sursa (job #2403387) | Cod sursa (job #2484218)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n, g, Max, dp[5005];
pair <int, int> a[5005];
int main() {
fin >> n >> g;
for (int i = 1; i <= n; ++i)
fin >> a[i].first >> a[i].second;
sort (a + 1, a + n + 1);
for (int i = n; i; --i) {
for (int j = g; j; --j) {
if (dp[j - a[i].first] || j == a[i].first) {
dp[j] = max(dp[j], dp[j - a[i].first] + a[i].second);
if (Max < dp[j])
Max = dp[j];
}
}
}
fout << Max;
return 0;
}