Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #3326032)
#include <fstream>
#define NMAX 5002
#define GMAX 10002
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n, Gmax;
struct obiect{int c, g;}; //greutatea si valoarea obiectului
obiect v[NMAX];
int cmax[GMAX];
void citire();
void pd();
int main()
{
citire();
pd();
fout<<cmax[Gmax]<<'\n';
return 0;
}
void pd()
{
int i, x;
for(i = 1; i <= n; i++) //folosesc obiectele 1, 2, ..., i - 1
for(x = Gmax; x > 0; x--)
if((v[i].g <= x) && (cmax[x] < v[i].c + cmax[x - v[i].g]))
cmax[x] = v[i].c + cmax[x - v[i].g];
}
void citire()
{
int i;
fin>>n>>Gmax;
for(i = 1; i <= n; i++) fin>>v[i].g>>v[i].c;
}