Pagini recente » Cod sursa (job #2247640) | Cod sursa (job #2074617) | Monitorul de evaluare | Cod sursa (job #2054705) | Cod sursa (job #2801161)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
const int NMAX = 1e5 + 1;
int n, g;
int d[NMAX];
int main()
{
in >> n >> g;
for (int i = 1; i <= g; i++)
{
d[i] = -1;
}
for (int i = 1; i <= n; i++)
{
int cost, profit;
in >> cost >> profit;
for (int j = g - cost; j >= 0; j--)
{
if (d[j] != -1 && (d[j + cost] == -1 || d[j + cost] < d[j] + profit))
{
d[j + cost] = d[j] + profit;
}
}
}
int maxi = -10;
for (int i = 1; i <= g; i++)
{
maxi = max(maxi, d[i]);
}
out << maxi;
return 0;
}