Pagini recente » Cod sursa (job #971497) | Cod sursa (job #1723906) | Profil gushterul | Cod sursa (job #1563417) | Cod sursa (job #1097233)
#include <fstream>
#define DMAX 10010
#define NMAX 5010
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
void citire();
void pd();
void afisare();
int n, G;
int profit[DMAX];
int g[NMAX], p[NMAX];
int main()
{
citire();
pd();
afisare();
fin.close();
fout.close();
return 0;
}
void citire()
{
int i;
fin>> n>> G;
for (i=1; i<=n; i++)
fin>> g[i]>> p[i];
}
void pd()
{
int i, j;
for(i=1; i<=G; i++)
profit[i] = -1;
profit[0] = 0;
for (i=1; i<=n; i++)
for (j=G-g[i]; j>=0 ; j--)
if (profit[j]!=-1 && profit[j]+p[i] > profit[j+g[i]])
profit[j+g[i]] = profit[j] + p[i];
}
void afisare()
{
int i, maxim;
maxim=profit[1];
for (i=2; i<=G; i++)
if (profit[i]>maxim)
maxim=profit[i];
fout<< maxim<< "\n";
}