Pagini recente » Cod sursa (job #2072754) | Cod sursa (job #1913671) | Cod sursa (job #1604730) | Cod sursa (job #2966907) | Cod sursa (job #1008203)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
struct element
{
int greutate;
int valoare;
};
class Rucsac
{
element *v;
int n;
int greutate_max;
int *dynamic_vector;
int valoare_maxima;
public:
void citire()
{
ifstream f("rucsac.in");
f >> n >> greutate_max;
v = new element[n];
dynamic_vector = new int[greutate_max];
for (int i = 0; i < n; i++)
f >> v[i].greutate >> v[i].valoare;
}
int rezolvare()
{
valoare_maxima = 0;
for (int i = 0; i <= greutate_max; i++)
dynamic_vector[i] = 0;
for (int i = 0; i < n;i++)
for (int j = greutate_max; j>=v[i].greutate; j--)
{
dynamic_vector[j] = max(dynamic_vector[j], dynamic_vector[j - v[i].greutate] + v[i].valoare);
if (valoare_maxima < dynamic_vector[j])
valoare_maxima = dynamic_vector[j];
}
return valoare_maxima;
}
void afisare()
{
ofstream g("rucsac.out");
g << rezolvare();
}
};
int main()
{
Rucsac Ion;
Ion.citire();
Ion.afisare();
return 0;
}