Pagini recente » Cod sursa (job #416692) | Cod sursa (job #2147457) | Cod sursa (job #3261733) | Cod sursa (job #959833) | Cod sursa (job #2545547)
#include <fstream>
#define INF 2000000002
#define forn(x,y,z)
using namespace std;
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int C[2][10002], n, G, lc=1, lp=0, i, j;
struct
{
int gr,p;
}V[5002];
int main()
{
fi>>n>>G;
for(i=1;i<=n;++i) fi >> V[i].gr >> V[i].p;
for(i=1; i<=n; ++i,lc^=1,lp^=1)
{
for(j=1; j<=G; ++j) if(V[i].gr<=j) C[lc][j]=max(C[lp][j],C[lp][j-V[i].gr]+V[i].p);
else C[lc][j]=C[lp][j];
/*for(int a=0; a<=1; a++)
{
for(int b=1; b<=G; b++)
fo << " " << C[a][b];
fo << '\n';
}
fo << '\n';*/
}
fo<<C[lp][G];
fi.close();
fo.close();
return 0;
}