Cod sursa(job #2277389)

Utilizator Horea_Mihai_SilaghiHorea Mihai Silaghi Horea_Mihai_Silaghi Data 6 noiembrie 2018 09:32:54
Problema Energii Scor 5
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[6000],i,j,cf,s=0,sp=0;
int main()
{
    cin>>n>>w;
    for(i=1;i<=w+1000;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=5005-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<=5005;i++)
    {
        if(v[i]!=MARE)
        {
            cout<<v[i];
            return 0;
        }
    }
    return 0;
}