Pagini recente » Cod sursa (job #2174677) | Cod sursa (job #2526455) | Cod sursa (job #1326256) | Cod sursa (job #1487658) | Cod sursa (job #2185997)
#include <iostream>
#include <fstream>
#include <climits>
#define dMAX 10000
using namespace std;
int n, capacity;
int w[dMAX + 2], p[dMAX + 2], T[2][dMAX + 2];
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int KnapSack(int x, int cap) {
int i, j, l = 0;
for (i = 1; i <= x; i++, l = 1 - l) {
for (j = 0; j <= cap; j++) {
T[1 - l][j] = T[l][j];
if (w[i] <= j) {
T[1 - l][j] = max(T[1 - l][j], T[l][j - w[i]] + p[i]);
}
}
}
return T[l][capacity];
}
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;
}