Cod sursa(job #2468105)

Utilizator AndreeaGherghescuAndreea Gherghescu AndreeaGherghescu Data 5 octombrie 2019 12:54:47
Problema Energii Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
int eg[1002],cg[1002],v[5002];
int main()
{
    int g,w,s=0;
    in>>g>>w;
    for (int i=1;i<=g;i++)
    {
        in>>eg[i]>>cg[i];
        s+=eg[i];
    }
    if (s<w) out<<-1;
    else
    {
        //v[0]=0;
        for (int i=1;i<=w;i++) v[i]=-1;
        for (int i=1;i<=g;i++)
        {
            for (int j=w;j>=0;j--)
                if (v[j]>-1)
                {
                    if (j+eg[i]>w)
                    {
                        if (v[j]+cg[i]<v[w])
                            v[w]=v[j]+cg[i];
                    }
                    else
                    {
                        if (v[j+eg[i]]==-1)
                            v[j+eg[i]]=v[j]+cg[i];
                        else if (v[j]+cg[i]<v[j+eg[i]])
                        {
                            v[j+eg[i]]=v[j]+cg[i];
                        }
                    }
                }
        }
        out<<v[w];
    }
    return 0;
}