Pagini recente » Istoria paginii runda/ojik | Cod sursa (job #156071) | Cod sursa (job #2068880) | Cod sursa (job #2108291) | Cod sursa (job #1035671)
#include <fstream>
using namespace std;
int n,gmax,g[5000],p[5000],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;
}