Cod sursa(job #2227725)

Utilizator YetoAdrian Tonica Yeto Data 1 august 2018 16:42:24
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
using namespace std;
int w1[10005], w2[10005];
int n, E, c, e, i, j, Min=2000000000, suma;
int v[10005];///v[i]=costul minim al unei submultimi de generatoare ce produc energia i

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

    for (i=1;i<=n;i++) {
        fin>>w1[i]>>w2[i];
        suma+=w1[i];
    }

    if (suma<E) {
        fout<<-1;
        return 0;
    }

    for (i=1;i<=suma;i++) {
        v[i]=2000000000;
    }

    for (i=1;i<=suma;i++) {
        e=w1[i];
        c=w2[i];
        for (j=suma-e;j>=0;j--) {
            if (v[j]!=2000000000) {
                if (v[j+e]>v[j]+c)
                    v[j+e]=v[j]+c;
            }
        }
    }

    for (i=E;i<=suma;i++) {
        Min=min(Min, v[i]);
    }

    fout<<Min;
    return 0;
}