Cod sursa(job #2277406)

Utilizator Horea_Mihai_SilaghiHorea Mihai Silaghi Horea_Mihai_Silaghi Data 6 noiembrie 2018 09:47:41
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define MARE 6000000
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int n,w,g[1005],p[1005],v[10005],i,j,cf,s=0,sp=0,valmin=MARE;
int main()
{
    cin>>n>>w;
    v[0]=0;
    for(i=1;i<=10005;i++)
        v[i]=MARE;
    for(i=1;i<=n;i++)
    {
        cin>>g[i]>>p[i];
        s=s+g[i];
        sp=sp+p[i];
    }
    if(s<w)
    {
        cout<<-1;
        return 0;
    }
    if(s==w)
    {
        cout<<sp;
        return 0;
    }
    for(i=1;i<=n;i++)
    {
        for(j=10005-g[i];j>=0;j--)
        {
            if(v[j+g[i]]>v[j]+p[i])
                v[j+g[i]]=v[j]+p[i];
        }
    }
    for(i=w;i<=10005;i++)
    {
        if(v[i]<valmin)
            valmin=v[i];
    }
    cout<<valmin;
    return 0;
}