Pagini recente » Cod sursa (job #1717087) | Cod sursa (job #1298729) | Cod sursa (job #2270638) | Cod sursa (job #1856463) | Cod sursa (job #1920546)
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n,G,P[5002],W[5002],D[2][10002];
int main()
{
cin>>n>>G;
for(int i=1;i<=n;++i)
cin>>W[i]>>P[i];
for(int i=1;i<=n;++i)
for(int j=0;j<=G;++j)
if(i%2==1)
{
D[1][j]=D[0][j];
if(W[j]<=j)
D[1][j]=max(D[1][j],D[0][j-W[i]]+P[i]);
}
else
{
D[0][i]=D[1][i];
if(W[j]<=G)
D[0][j]=max(D[0][j],D[1][j-W[i]]+P[i]);
}
cout<<D[n%2][G];
return 0;
}