Pagini recente » Cod sursa (job #279661) | Cod sursa (job #325327) | Cod sursa (job #1219815) | Cod sursa (job #564059) | Cod sursa (job #2757161)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int N = 10000;
int d[N+5];
int main()
{
int n, w, p, g, last;
fin >> n >> g;
d[0] = 0;
for(int i = 1; i <= g; i++)
{
d[i] = -1;
}
last = 0;
for(int i = 1; i <= n; i++)
{
fin >> w >> p;
for(int j = last; j >= 0; j--)
{
if(j + w > g)
continue;
if(d[j] != -1)
{
if(d[j] + p > d[j+w])
d[j+w] = d[j] + p;
if(j + w > last)
last = j + w;
}
}
}
int maxp = -1;
for(int j = g; j >= 1; j--)
{
if(d[j] > maxp)
maxp = d[j];
}
fout << maxp;
return 0;
}