Pagini recente » Cod sursa (job #191929) | Cod sursa (job #754736) | Cod sursa (job #2028364) | Cod sursa (job #642139) | Cod sursa (job #3225997)
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n,G,g[5005],p[5005],d[10002],maxi,sol;
int main()
{
cin>>n>>G;
for(int i=1; i<=n; i++)
cin>>g[i]>>p[i];
for(int i=1; i<=G; i++)
d[i]=-1;
d[0]=0;
maxi=0;
for(int i=1;i<=n;i++)
for(int j=maxi;j>=0;j--)
if(d[j]!=-1&&j+g[i]<=G)
{
if(d[j+g[i]]<d[j]+p[i])
{
d[j+g[i]]=d[j]+p[i];
maxi=max(maxi,j+g[i]);
}
sol=max(sol,d[j+g[i]]);
}
cout<<sol;
return 0;
}