Pagini recente » Cod sursa (job #3004664) | Cod sursa (job #1538919) | Cod sursa (job #2705821) | Cod sursa (job #2852099) | Cod sursa (job #2492385)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n, G;
struct obiecte
{
int w;
int p;
};
obiecte rus[5005];
int mat[10005][5005];
int main()
{
in>>n>>G;
for(int i=1; i<=n; i++)
in>>rus[i].w>>rus[i].p;
for(int i=1; i<=n; i++)
for(int j=1; j<=G; j++)
if(rus[i].w>j)
mat[i][j]=mat[i][j-1];
else
mat[i][j]=max(mat[i-1][j-rus[i].w]+rus[i].p, mat[i-1][j]);
out<<mat[n][G];
in.close();
out.close();
return 0;
}