Pagini recente » Cod sursa (job #813111) | Cod sursa (job #3164143) | Cod sursa (job #2584907) | Cod sursa (job #105221) | Cod sursa (job #2852910)
#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;
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];
}
//Afisare(g);
}
out<<dp[g];
return 0;
}