Pagini recente » Cod sursa (job #2265302) | Cod sursa (job #290624) | Cod sursa (job #327979) | Cod sursa (job #2829700) | Cod sursa (job #1623281)
#include <fstream>
#define NMax 5001
#define MaxG 10001
#define max(x,y) (x > y ? x : y)
using namespace std;
int n, GMax;
int c[NMax], g[NMax];
int v[MaxG][NMax];
void Citire()
{
ifstream fin("rucsac.in");
fin >> n >> GMax;
for(int i=1; i <= n; i++) fin >> g[i] >> c[i];
}
void Rezolvare()
{
for(int i=1; i <= n; i++)
{
for(int S=1; S<= GMax; S++)
{
if(g[i] <= S)
{
v[i][S] = max(c[i] + v[i-1][S - g[i]], v[i-1][S]);
}
}
}
}
void Afisare()
{
ofstream fout("rucsac.out");
fout << v[n][GMax];
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}