Cod sursa(job #2354304)

Utilizator Iorgus08Iorgus Serghei Cicala Iorgus08 Data 25 februarie 2019 09:49:32
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("energii.in");
ofstream out("energii.out");

const int maxN=6e6;
int n,w,generator[1005],pret[1005],v[10005],i,j,cf,suma=0,suma_pret=0,valmin=maxN;

int main()
{
    in>>n>>w;
    v[0]=0;
    for(i=1;i<=10005;i++)
        v[i]=maxN;
    for(i=1;i<=n;i++)
    {
        in>>generator[i]>>pret[i];
        suma+=generator[i];
        suma_pret+=pret[i];
    }
    if(suma<w)
    {
        out<<-1;
        return 0;
    }
    if(suma==w)
    {
        out<<suma_pret;
        return 0;
    }
    for(i=1;i<=n;i++)
    {
        for(j=10005-generator[i];j>=0;j--)
        {
            if(v[j+generator[i]]>v[j]+pret[i])
                v[j+generator[i]]=v[j]+pret[i];
        }
    }
    for(i=w;i<=10005;i++)
    {
        if(v[i]<valmin)
            valmin=v[i];
    }
    out<<valmin;
    return 0;
}