Cod sursa(job #1579825)

Utilizator BlastAndrei Bogza Blast Data 25 ianuarie 2016 09:22:09
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

int n,w,d[10001],i,e[10001],c[10001],j,x;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int main ()
{
    fin>>n>>w;
    for (i=1; i<=n; i++)
    {
        fin>>e[i]>>c[i];
    }
    for (i=1; i<=10000; i++)
        d[i] = 100000000;
    x = 100000000;
    d[0] = 0;
    for (i=1; i<=n; i++)
    {
        for (j=w-1; j>=0; j--)
            if (d[j] != x)
            {
                // voi obtine j+e[i]
                if (j+e[i] < w)
                    d[ j+e[i] ] = min (d[ j+e[i] ], d[j] + c[i]);
                else
                    d[w] = min (d[w], d[j] + c[i]);
            }

    }
    if (d[w] != x)
        fout<<d[w]<<"\n";
    else
        fout<<-1;
    return 0;
}