Cod sursa(job #2080519)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 3 decembrie 2017 01:32:27
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#define NMAX 5001
#define GMAX 10001
#define weight first
#define profit second
#define UNDEF -1

using namespace std;

pair<int, int> objs[NMAX];
int dp[NMAX][GMAX], n, G;

void read() {

    int x, y;

    ifstream in("rucsac.in");
    in >> n >> G;

    for (int i = 1; i <= n; i++) {

        in >> x >> y;
        objs[i] = make_pair(x, y);
    }
    in.close();
}

int main()
{
    read();

    for (int i = 1; i <= n; i++) {

        for (int j = 1; j <= G; j++) {

            if (objs[i].weight > j)
                dp[i][j] = dp[i - 1][j];
            else
                dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - objs[i].weight] + objs[i].profit);
        }
    }

    ofstream out("rucsac.out");
    out << dp[n][G] << "\n";
    out.close();
    return 0;
}