Pagini recente » Rating Kerrylyday (Kerrylyday) | Cod sursa (job #1560809) | Cod sursa (job #1501670) | Cod sursa (job #1140860) | Cod sursa (job #819528)
Cod sursa(job #819528)
#include <fstream>
#define NMAX 101
#define GMAX 301
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, gmax;
int g[NMAX], c[NMAX];
int uz[GMAX][GMAX];
int cmax[NMAX];
void citire();
void pd();
void afisare();
int main()
{
citire();
pd();
afisare();
return 0;
}
void citire()
{
fin>>n>>gmax;
for(int i=1; i<=n; i++)
fin>>g[i]>>c[i];
}
void pd()
{
int i, j, k;
for(i=1; i<=gmax; i++) cmax[i]=-1;
for(i=1; i<=gmax; i++)
for(j=1; j<=gmax; j++)
if(g[j]<=i && cmax[i-g[j]]!=-1 && uz[i-g[j]][j]==0)
if(cmax[i]<c[i]+cmax[i-g[j]])
{
cmax[i]=c[j]+cmax[i-g[j]];
for(k=1; k<=n; k++)
uz[i][k]=uz[i-g[j]][k];
uz[i][j]=1;
}
}
void afisare()
{
int k;
if(cmax[gmax]!=-1)
//{
fout<<cmax[gmax]<<'\n';
// for(k=1; k<=n; k++)
// if(uz[gmax][k]) fout<<k<<' ';
// fout<<'\n';
//}
fout.close();
}