Cod sursa(job #1000996)

Utilizator diana97Diana Ghinea diana97 Data 24 septembrie 2013 11:29:14
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f ("energii.in");
ofstream g ("energii.out");

int n, emax;
int v[1005][5005];

struct generator {int e, c;} gen[1005];

void initializeaza ()
{
    f>>n>>emax;
    for (int i=1; i<=n; i++)
        f>>gen[i].e>>gen[i].c;
    for (int i=0; i<=n; i++){
        for (int j=0; j<=emax; j++) v[i][j]=9999999;}
    for (int i=0; i<=n; i++) v[i][0]=0;


}

void rezolva ()
{
    for (int i=1; i<=n; i++)
        for (int j=0; j<=emax; j++)
            if(j<gen[i].e)
                v[i][j]=min(v[i-1][j],gen[i].c);
            else
                v[i][j]=min(v[i-1][j],v[i-1][j-gen[i].e]+gen[i].c);
}

int main ()
{
    initializeaza ();
    rezolva ();
    if (v[n][emax]==9999999) g<<"-1";
    else g<<v[n][emax];
    g<<'\n';
    return 0;
}