Pagini recente » Cod sursa (job #3222311) | Cod sursa (job #2803233) | Cod sursa (job #2505776) | Cod sursa (job #2998405) | Cod sursa (job #1131093)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucasc.out");
int n, g, w[5005], p[10005], din[5005][10005];
void read()
{
fin >> n >> g;
for(int i = 1; i <= n; ++i)
fin >> w[i] >> p[i];
fin.close();
}
void debug()
{
for(int i = 1; i <= n; ++i)
{
for(int cw = 0; cw <= g; ++cw)
cout << din[i][cw] << ' ';
cout << '\n';
}
}
void dinamica()
{
for(int i = 1; i <= n; ++i)
for(int cw = 0; cw <= g; ++cw)
{
din[i][cw] = din[i-1][cw];
if(w[i] <= cw)
din[i][cw] = max(din[i][cw], din[i-1][cw-w[i]] + p[i]);
}
}
int main()
{
read();
dinamica();
//debug();
fout << din[n][g];
return 0;
}