Pagini recente » Cod sursa (job #812663) | Cod sursa (job #2512898) | Cod sursa (job #1713327) | Cod sursa (job #2074102) | Cod sursa (job #1447671)
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
struct obiect {
int g, p; // greutatea, profitul
};
obiect a[5001];
int n, G, l, g,i, p, c, pn, lp, lc, d[2][10001];
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");
int main()
{
fi>>n>>G;
for(i=1;i<=n;i++)
fi>>a[i].g>>a[i].p;
lp=0;
lc=1;
for(l=1;l<=n;l++){
for(c=1;c<=G;c++)
{
if(a[l].g<=c)
{
pn=a[l].p+d[lp][c-a[l].g];
if(pn>=d[lp][c])
d[lc][c]=pn;
else
d[lc][c]=d[lp][c];
}
else
d[lc][c]=d[lp][c];
}
lp=1-lp;
lc=1-lc;
}
fo<<d[lp][G];
}