Pagini recente » Cod sursa (job #999920) | Cod sursa (job #865833) | Cod sursa (job #3145976) | Cod sursa (job #1399147) | Cod sursa (job #677352)
Cod sursa(job #677352)
#include<fstream>
#define DIM1 5001
#define DIM2 10001
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int Profit[DIM1][DIM2];
int N, G;
int W[DIM1], P[DIM1];
int main()
{
int i, j;
in >> N >> G;
for(i = 1; i <= N; i++)
in >> W[i] >> P[i];
for(i = 1; i <= N; i++)
for(j = 1; j <= G; j++)
{
Profit[i][j] = Profit[i-1][j]; //nu punem prima data obiectul curent
if( W[i] <= j )
Profit[i][j] = max(Profit[i][j], Profit[i-1][j-W[i]] + P[i] ); // numai in cazul in care maximizez profitul
}
out << Profit[N][G];
return 0;
}