Pagini recente » Cod sursa (job #2297224) | Cod sursa (job #153103) | Cod sursa (job #1199018) | Cod sursa (job #2938925) | Cod sursa (job #1035673)
#include <fstream>
using namespace std;
int n,gmax,g[10000],p[10000],sol[10000];
ifstream input("rucsac.in");
ofstream output("rucsac.out");
void read()
{
int i;
input >> n >> gmax;
for (i=1;i<=n;i++)
input >> g[i] >> p[i];
}
void rucsac()
{
int i,j,PMax;
for (i=1;i<=n;i++)
sol[i] = -1;
for (i=1;i<=n;i++)
for (j=gmax;j>=0;j--)
if (j+g[i]<=gmax&&sol[j]!=-1)
if (sol[j+g[i]]<sol[j]+p[i])
sol[j+g[i]] = sol[j]+p[i];
PMax = sol[1];
for (i=1;i<=gmax;i++)
if (sol[i]>PMax)
PMax = sol[i];
output << PMax;
}
int main()
{
read();
rucsac();
return 0;
}