Pagini recente » Cod sursa (job #2206888) | Cod sursa (job #1456854) | Cod sursa (job #765131) | Cod sursa (job #3151316) | Cod sursa (job #1005716)
#include <iostream>
#include <fstream>
#include <cstdio>
#define NMAX 5001
#define GMAX 10001
using namespace std;
int Valoare[NMAX] , Greutati[NMAX] , Vect[GMAX];
int Nr_obiecte , Gr_maxima;
ifstream input("rucsac.in");
ofstream output("rucsac.out");
int dinamica()
{
int solutie = -1;
for (int i = 0;i<GMAX;i++)
Vect[i] = 0;
for (int i = 0;i<Nr_obiecte;i++)
for (int j = Gr_maxima - Greutati[i];j>=0;j--)
if (Vect[j + Greutati[i]] < Vect[j] + Valoare[i])
{
Vect[j + Greutati[i]] = Vect[j] + Valoare[i];
if (solutie < Vect[j + Greutati[i]])
solutie = Vect[j + Greutati[i]];
}
return solutie;
}
int main()
{
input >> Nr_obiecte >> Gr_maxima;
for (int i = 0; i<Nr_obiecte;i++)
{
input >> Greutati[i] >> Valoare[i];
}
output << dinamica();
input.close();
output.close();
return 0;
}