Pagini recente » Cod sursa (job #979628) | Cod sursa (job #436660) | Cod sursa (job #1008443) | Cod sursa (job #1070376) | Cod sursa (job #2185974)
#include <iostream>
#include <fstream>
#include <climits>
#define dMAX 10000
using namespace std;
int n, capacity;
int w[dMAX + 2], p[dMAX + 2];
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int KnapSack(int x, int cap) {
if (cap < 0) return INT_MIN;
if (x < 1 || cap == 0) return 0;
int include = p[x] + KnapSack(x - 1, cap - w[x]);
int exclude = KnapSack(x - 1, capacity);
return max(include, exclude);
}
int main()
{
int i, j;
fin >> n >> capacity;
for (i = 1; i <= n; i++) {
fin >> w[i] >> p[i];
}
fout << KnapSack(n, capacity);
return 0;
}