Pagini recente » Cod sursa (job #3202200) | Cod sursa (job #1405075) | Cod sursa (job #1892586) | Cod sursa (job #2462229) | Cod sursa (job #1075750)
#include <iostream>
#include <cstdio>
#define nmax 10005
using namespace std;
int n, G;
int costo[nmax];//cost optim
int p[nmax], w[nmax];
void citire()
{
scanf("%d %d\n", &n, &G);
for(int i = 1; i <= n; i++)
scanf("%d %d\n",&w[i], &p[i]);
}
void rucsac()
{
/**primul rand*/
for(int i = w[1]; i <= G; ++i)
costo[i] = p[1];
/**pentru fiecare rand(obiect adaugat)*/
for(int i = 2; i <= n; i++)
{
for(int j = G; j >= w[i]; --j)
costo[j] = max(costo[j], p[i] + costo[j-w[i]]);
}
}
void afisare()
{
int rezultat = 0;
for(int i = 1; i <= G; i++)
rezultat = max(rezultat, costo[i]);
cout << rezultat;
}
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
citire();
rucsac();
afisare();
return 0;
}