Cod sursa(job #2327016)

Utilizator andra_moldovanAndra Moldovan andra_moldovan Data 24 ianuarie 2019 12:36:03
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

#define MAXN 5002
#define MAXM 10004

using namespace std;

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

struct two{
    int val, g;
};

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

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

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

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;
}