Pagini recente » Cod sursa (job #2702697) | Cod sursa (job #227833) | Cod sursa (job #1642630) | Cod sursa (job #257495) | Cod sursa (job #2940472)
#include<fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n,greutate_max,greutate[5005],pret[5005],dp[5005];
inline int maxim(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{cin>>n>>greutate_max;
for(int i=1;i<=n;i++)
cin>>greutate[i]>>pret[i];
for(int i=1;i<=n;i++)
for(int j=greutate_max-greutate[i];j>=1;j--)
if(dp[j]+pret[i]>dp[j+greutate[i]])
dp[j+greutate[i]]=dp[j]+pret[i];
int sol=0;
for(int i=1;i<=greutate_max;i++)
sol=maxim(sol,dp[i]);
cout<<sol;
}