Pagini recente » Cod sursa (job #285379) | Cod sursa (job #3283291) | Cod sursa (job #2560254) | Cod sursa (job #2594824) | Cod sursa (job #819526)
Cod sursa(job #819526)
#include <fstream>
#define DMAX 50000
using namespace std;
int n, GMax;
int used[DMAX];
int CMax[DMAX];
void Citire();
void pd();
void show();
int main()
{
Citire();
pd();
afisare();
return 0;
}
void Citire()
{
ifstream fin("rucsac.in");
fin >> n;
fin >> GMax;
int i;
for(i = 1; i <= n; i++)
{
fin >> g[i] >> c[i];
}
fin.close();
}
void pd()
{
int i,j, G;
int max = -1;
for(G = GMax ; G >= 0; G--)
{
max = -1;
for(i = 1; i <= n; i++)
{
if(c[i] + CMax[G-g[i]] > max && g[i] <= G && !used[G-g[i]][i])
{
max = c[i] + CMax[G-g[i]];
}
}
CMax[G] = max;
for(j = 1; j <= n; j++)
{
if(j!=i)
{
used[G][j] = used[G-g[i]][j];
}
}
used[G][i] = 1;
}
}
void show()
{
ofstream fout("rucsac.out");
fout << CMax[0] << '\n';
fout.close();
}