Pagini recente » Cod sursa (job #380254) | Cod sursa (job #2894402) | Cod sursa (job #719144) | Cod sursa (job #1847081) | Cod sursa (job #1978225)
#include <iostream>
#include <fstream>
#define Nmax 5001
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n, G, w[Nmax], p[Nmax],sol, pr[Nmax][Nmax],l;
int main()
{
f>>n>>G;
for(int i=1;i<=n;i++)
{
f>>w[i]>>p[i];
l+=w[i];
pr[w[i]][i]=p[i];
pr[l][i]=pr[l-w[i]][i-1]+p[i];
if(l<=G)
sol=max(sol, pr[l][i]);
if(w[i]<=G)
sol=max(sol, pr[w[i]][i]);
}
for(int i=1;i<=n;i++)
{
for(int k=w[i];k<=G;k++)
{
for(int j=1;j<i;j++)
{
if(pr[k-w[i]][j]!=0)
pr[k][i]=max(pr[k][i], pr[k-w[i]][j]+p[i]);
}
sol=max(sol, pr[k][i]);
}
}
g<<sol;
}