Cod sursa(job #2251755)
Utilizator | Data | 1 octombrie 2018 22:08:32 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
using namespace std;
int n,Gmax,G,V,i,j,pd[1001][100001],W[1001],P[1001],ans;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
cin>>n>>Gmax;
for(i=1; i<=n; i++)
{
cin>>G>>V;
W[i]=G;
P[i]=V;
}
for(i=1; i<=n; i++)
{
for(j=1; j<W[i]; j++)
pd[i][j]=pd[i-1][j];
for(j=W[i]; j<=Gmax; j++)
pd[i][j]=max(pd[i-1][j],pd[i-1][j-W[i]]+P[i]);
}
ans=0;
for(i=1;i<=Gmax;i++)
ans=max(ans,pd[n][Gmax]);
cout<<ans<<'\n';
return 0;
}