Cod sursa(job #1923328)

Utilizator RobybrasovRobert Hangu Robybrasov Data 10 martie 2017 22:39:27
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define N 1001
#define INF 0x3f3f3f3f

using namespace std;

int C[N], EG[N], CG[N];

int main() {
    ifstream fin("energii.in");
    ofstream fout("energii.out");
    int n, w;
    fin >> n >> w;

    int emax = 0;
    for (int i = 0; i < n; ++i) {
        fin >> EG[i] >> CG[i];
        emax = max(emax, EG[i]);
    }

    for (int i = 1; i <= w + emax; ++i)
        C[i] = INF;
    
    for (int i = 0; i < n; ++i) {
        for (int j = w + emax - EG[i]; j > -1; --j) {
            int upos = j + EG[i];
            C[upos] = min(C[upos], C[j] + CG[i]);
        }
    }
    
    int mc = INF;
    for (int i = w; i <= w + emax; ++i)
        mc = min(mc, C[i]);

    fout << mc << "\n";
    
    return 0;
}