Pagini recente » Cod sursa (job #241963) | Cod sursa (job #2695837) | Cod sursa (job #640822) | Cod sursa (job #746037) | Cod sursa (job #1830130)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
fstream fin("rucsac.in", ios::in), fout("rucsac.out", ios::out);
int n , GMax, greutate[5001], profit[5001];
int pMax[2][10001], * p, * q;
int main()
{
fin >> n >> GMax;
for(int i = 1 ; i <= n ; i ++)
fin >> greutate[i] >> profit[i];
p = pMax[0], q = pMax[1];
for(int i = 1 ; i <= n ; i ++)
{
for(int j = 1 ; j <= GMax ; j++)
if(greutate[i] > j)
q[j] = p[j];
else
q[j] = max(p[j], p[j-greutate[i]] + profit[i]);
swap(p , q);
}
fout << p[GMax];
return 0;
}