Pagini recente » Cod sursa (job #93195) | Cod sursa (job #1086536) | Cod sursa (job #2652943) | Cod sursa (job #2666594) | Cod sursa (job #1357899)
#include <cstdio>
#define GMAX 10005
#define NMAX 5005
using namespace std;
int dp[NMAX][GMAX], N, G, P[GMAX], g[GMAX];
void citire();
void pd();
int main()
{
freopen ("rucsac.out", "w", stdout);
citire();
pd();
printf("%d", dp[N][G]);
return 0;
}
void citire()
{
freopen ("rucsac.in", "r", stdin);
int i;
scanf("%d %d", &N, &G);
for(i=1;i<=N;++i)
{
scanf("%d %d", &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];
}
}
}