Pagini recente » Cod sursa (job #1443747) | Cod sursa (job #1560783) | Cod sursa (job #2407352) | Cod sursa (job #22299) | Cod sursa (job #2092273)
#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][5010];
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;
}