Pagini recente » Cod sursa (job #440118) | Cod sursa (job #381693) | Cod sursa (job #496317) | Cod sursa (job #3216436) | Cod sursa (job #2852924)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
const int N=5005,G=1e4+5;
int dp[G],p[N],w[N];
void Afisare(int n)
{
for(int i=1; i<=n; i++)
cout<<dp[i]<<' ';
cout<<'\n';
}
int main()
{
int n,g;
in>>n>>g;
for(int i=1; i<=n; i++)
in>>w[i]>>p[i];
int wMAX=0,sol=0;
for(int i=1; i<=n; i++)
{
for(int j=wMAX; j>=0; j--)
if(j+w[i]<=g && dp[j]+p[i] > dp[j+w[i]])
{
if(j+w[i]>wMAX) wMAX=j+w[i];
dp[j+w[i]]=dp[j]+p[i];
if(dp[j+w[i]] > sol) sol = dp[j+w[i]];
}
//Afisare(g);
}
out<<sol;
return 0;
}