Pagini recente » Cod sursa (job #257682) | Cod sursa (job #2663342) | Cod sursa (job #1337177) | Cod sursa (job #1920197) | Cod sursa (job #2770796)
#include <fstream>
#define NMAX 5001
#define SUMMAX 20001
using namespace std;
ifstream cin ("rucsac.in");
ofstream cout("rucsac.out");
int f[SUMMAX], v[NMAX], p[NMAX];
int n, G;
void citire()
{
cin >> n >> G;
for(int i = 1; i <= n; i++)
cin >> v[i] >> p[i];
}
void rucsac()
{
int profitmaxim;
profitmaxim = 0;
for(int i = 1; i <= n; i++)
{
for(int j = G; j >= 1; j--)
if(f[j] != 0 && j + v[i] <= G)
if(f[j + v[i]] < f[j] + p[i])
f[j + v[i]] = f[j] + p[i];
if (v[i] <= G && p[i] > f[v[i]])
f[v[i]] = p[i];
}
for(int i = 1; i <= G; i++)
profitmaxim = max(f[i], profitmaxim);
cout << profitmaxim;
}
void rezolvare()
{
citire();
rucsac();
}
int main()
{
rezolvare();
return 0;
}