Pagini recente » Cod sursa (job #729779) | Cod sursa (job #1975350) | Cod sursa (job #660606) | Cod sursa (job #3240677) | Cod sursa (job #2092278)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main()
{
int N, G, W[5010], P[5010], S[2][10010];
fin >> N >> G;
for(int i=1;i<=N;i++)
fin >> W[i] >> P[i];
for(int j=1;j<=G;j++)
if(W[1]<=j)
S[0][j]=P[1];
for(int i=2;i<=N;i++)
{
for(int j=1;j<=G;j++)
{
if(W[i]>j)
S[1][j]=S[0][j];
else
S[1][j]=max(P[i]+S[0][j-W[i]],S[0][j]);
}
for(int j=1;j<=G;j++)
S[0][j]=S[1][j];
}
fout << S[1][G];
return 0;
}