Pagini recente » Cod sursa (job #2656055) | Cod sursa (job #909635) | Cod sursa (job #3001893) | Cod sursa (job #2602412) | Cod sursa (job #1499904)
#include <iostream>
#include <fstream>
#define gmax 10001
#define nmax 5001
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int dv[gmax],dn[gmax],g[nmax],pr[nmax];
int main()
{int n,gre,i,j,w;
fin>>n>>gre;
for(i=1;i<=n;i++)
fin>>g[i]>>pr[i];
for(j=1;j<=gre;j++)
dv[j]=-1;
for(i=1;i<=n;i++)
{for(w=1;w<=gre;w++)
{dn[w]=dv[w];
if(g[i]<=w && dv[w-g[i]]!=-1 && dn[w]<dv[w-g[i]]+pr[i])
dn[w]=dv[w-g[i]]+pr[i];
}
for(w=1;w<=gre;w++)
dv[w]=dn[w];
}
int maxim=-1;
for(i=1;i<=gre;i++)
{
if(maxim<dv[i] && dv[i]!=-1)
maxim=dv[i];
}
fout<<maxim;
}