Pagini recente » Istoria paginii runda/tl3/clasament | Cod sursa (job #1365285) | Cod sursa (job #436853) | Cod sursa (job #2161937) | Cod sursa (job #2185992)
#include <iostream>
#include <fstream>
#include <climits>
#define dMAX 10000
using namespace std;
int n, capacity;
int w[dMAX + 2], p[dMAX + 2], T[dMAX + 2][dMAX + 2];
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int KnapSack(int x, int cap) {
int i, j;
for (i = 1; i <= n; i++) {
for (j = 0; j <= cap; j++) {
if (w[i - 1] > j) T[i][j] = T[i - 1][j];
else T[i][j] = max(T[i - 1][j], T[i - 1][j - w[i - 1]] + p[i - 1]);
}
}
return T[n][capacity];
}
int main()
{
int i, j;
fin >> n >> capacity;
for (i = 0; i < n; i++) {
fin >> w[i] >> p[i];
}
fout << KnapSack(n, capacity);
return 0;
}