Pagini recente » Cod sursa (job #2153137) | Cod sursa (job #1879532) | Cod sursa (job #1461572) | Cod sursa (job #721738) | Cod sursa (job #2715466)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
#define NMAX 5001
#define G 10001
int g[NMAX], v[NMAX], s[G];
int n, gmax, maxim, i;
int main() {
cin >> n >> gmax;
for(i = 1; i <= n; i++)
cin >> g[i] >> v[i]; //greutatea si valoarea fiecarui obiect
for(i = 1; i <= n; i++) //g[i] reprezinta indicele
for(int j = gmax - g[i]; j >= 0; j--)
if(s[j + g[i]] < s[j] + v[i]) { //daca avem o solutie mai buna
s[j + g[i]] = s[j] + v[i]; //v[i] reprezinta valoarea
if(s[j + g[i]] > maxim)
maxim = s[j + g[i]];
}
cout << maxim;
return 0;
}