Pagini recente » Cod sursa (job #1409177) | Cod sursa (job #95358) | Cod sursa (job #881474) | Cod sursa (job #1916913) | Cod sursa (job #1357892)
#include <fstream>
#define GMAX 10005
#define NMAX 5005
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int dp[NMAX][GMAX], N, G, P[GMAX], g[GMAX];
void citire();
void pd();
int main()
{
citire();
pd();
fout<<dp[N][G]<<'\n';
return 0;
}
void citire()
{
int i;
fin>>N>>G;
for(i=1;i<=N;++i)
{
fin>>g[i]>>P[i];
}
}
void pd()
{
int i, j;
for(i=0;i<=N;++i)
dp[0][i]=0;
for(i=0;i<=G;++i)
dp[i][0]=0;
for(i=1;i<=N;++i)
{
for(j=0;j<=G;++j)
{
dp[i][j]=dp[i-1][j];
if( j>=g[i] && dp[i-1][j-g[i]] + P[i] > dp[i][j] )
dp[i][j]=dp[i-1][j-g[i]] + P[i];
}
}
}