Cod sursa(job #2326541)

Utilizator andra_moldovanAndra Moldovan andra_moldovan Data 23 ianuarie 2019 17:19:52
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

#define MAXN 5002

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

struct two{
    int val, g;
};

two obj[MAXN];
int N, G, dp[MAXN];

inline void Read(int &N, int &G) {
    fin >> N >> G;

    for (int i = 1; i <= N; i++) {
        fin >> obj[i].g >> obj[i].val;
    }
}

inline void Dinamica(int N, int G) {
    for (int i = 1; i <= N; i++) {
        for (int j = G; j; j--) {
            if (j - obj[i].g >= 0)
                dp[j] = max(dp[j], dp[j - obj[i].g] + obj[i].val);
        }
    }

    fout << dp[G];
}

int main () {
    int N, G;

    Read(N, G);
    Dinamica(N, G);

    fin.close(); fout.close(); return 0;
}