Cod sursa(job #2185992)

Utilizator EclipseTepes Alexandru Eclipse Data 25 martie 2018 11:24:19
Problema Problema rucsacului Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#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;
}