Pagini recente » Cod sursa (job #2088023) | Cod sursa (job #2545369) | Cod sursa (job #307478) | Cod sursa (job #313275) | Cod sursa (job #2251765)
#include <iostream>
using namespace std;
long long n,Gmax,i,j,pd[3][100001],W[1001],P[1001],ans,act,ant;
int main()
{
ios::sync_with_stdio(false);
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
cin>>n>>Gmax;
for(i=1; i<=n; i++)
{
cin>>W[i]>>P[i];
}
for(i=1; i<=n; i++)
{
act=i%2;
ant=1-(i%2);
for(j=1; j<W[i]; j++)
pd[act][j]=pd[ant][j];
for(j=W[i]; j<=Gmax; j++)
pd[act][j]=max(pd[ant][j],pd[ant][j-W[i]]+P[i]);
}
ans=0;
act=n%2;
for(i=1;i<=Gmax;i++)
ans=max(ans,pd[act][Gmax]);
cout<<ans<<'\n';
return 0;
}