Cod sursa(job #1821008)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 2 decembrie 2016 14:24:00
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <cstring>
#include <algorithm>

using namespace std;

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

const int INF = (1 << 31);

int n, w, d[10010], e[1010], c[1010], i, j;

int main() {
    memset(d, 1, sizeof(d));
    fin >> n >> w;
    for (i = 1; i <= n; ++i) {
        fin >> e[i] >> c[i];
    }
    d[0] = 0;
    for (i = 1; i <= n; ++i) {
        for (j = w; j >= 0; --j) {
            if (d[j] != INF) {
                if (j + e[i] <= w) {
                    d[j + e[i]] = min(d[j] + c[i], d[j + e[i]]);
                } else {
                    d[w] = min(d[w], d[j] + c[i]);
                }
            }
        }
    }
    if(d[w]!=INF) {
        fout << d[w];
    } else {
        fout << "-1";
    }
    return 0;
}