Pagini recente » Cod sursa (job #1264039) | Cod sursa (job #1648139) | Cod sursa (job #2578313) | Cod sursa (job #207607) | Cod sursa (job #1335983)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct ob
{
int p;
int gr;
};
ob v[5005];
int n,G,m[2][10005];
int main ()
{
int i,j, l;
f>>n>>G;
for(i=1;i<=n;i++)
f>>v[i].gr>>v[i].p;
l=0;
for(i=1;i<=n;i++)
{
for(j=0;j<=G;j++)
{
m[l][j]=m[1-l][j]; // nu se pune obiectul i
if(v[i].gr<=j)
m[l][j]=max(m[l][j], m[1-l][j-v[i].gr]+v[i].p); // incercam sa punem obiectul i pe o pozitie anterioara
}
l=1-l;
}
g<<m[1-l][G];
}