Cod sursa(job #1480335)

Utilizator samcroVartic Alexandru samcro Data 2 septembrie 2015 14:38:26
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define inf 500000000
#define lim 15000
using namespace std;

fstream fin("energii.in",ios::in);
fstream fout("energii.out",ios::out);

int N,W,*e,*c,s,sol = inf,v[lim];

void citire(){
    fin >> N;
    e = new int[N+1];
    c = new int[N+1];
    fin >> W;
    for(int i=1;i<=N;i++)
    {
        fin >> e[i] >> c[i];
        s = max(s,e[i]);
    }
    for(int i=1;i<=s+W;i++)
        v[i] = inf;

}

void rezolv()
{
    for(int i=1;i<=N;i++)
    {
        for(int j=W+e[i];j>=e[i];j--)
        {
            v[j] = min(v[j],v[j-e[i]]+c[i]);
            if( j>= W)
                sol = min(sol,v[j]);
        }
    }
}



int main()
{
    citire();
   rezolv();
   if(sol == inf)
    fout << "-1";
   else fout << sol;
    return 0;
}