Cod sursa(job #2228052)

Utilizator YetoAdrian Tonica Yeto Data 2 august 2018 16:15:47
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
using namespace std;
struct generatoare{
   int first,second;
} A[1005];;
int n, E, c, e, i, j, Min=200000000, suma;
int v[5002];

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

    for (i=1;i<=n;i++) {
        fin>>A[i].first>>A[i].second;
        suma+=A[i].first;
    }

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

    for (i=1;i<=E;i++) {
        v[i]=200000000;
    }

    for (i=1;i<=n;i++) {
        e=A[i].first;
        c=A[i].second;
        for (j=E;j>=0;j--) {
            if (v[j]!=200000000) {
              if(j+e<=E) {
                if (v[j+e]>v[j]+c)
                    v[j+e]=v[j]+c;
              }
              else
                if (v[E]>v[j]+c)
                    v[E]=v[j]+c;
            }
        }
    }

   if(v[E]!=200000000)
    fout<<v[E];
  else
        fout<<-1;
    return 0;
}