Pagini recente » Cod sursa (job #1157271) | Cod sursa (job #1322913) | Cod sursa (job #1343366) | Cod sursa (job #2621789) | Cod sursa (job #1357890)
#include <fstream>
#define GMAX 10005
#define NMAX 5005
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct obiect
{
int w, p;
}objects[GMAX];
int dp[NMAX][GMAX], N, G;
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>>objects[i].w>>objects[i].p;
}
}
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>=objects[i].w && dp[i-1][j-objects[i].w] + objects[i].p > dp[i][j] )
dp[i][j]=dp[i-1][j-objects[i].w] + objects[i].p;
}
}
}