Cod sursa(job #2435296)

Utilizator Alex_DiaconuDiaconu Alexandru Alex_Diaconu Data 3 iulie 2019 16:49:49
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>

using namespace std;

const int nmax=1000;
const int smax=10000;
int v[nmax+1],c[nmax+1],d[smax+1];

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

int main ()
{
    int n,s;
    ci >> n >> s;
    for (int i=1; i<=n; i++)
    {
        ci >> v[i];
        ci >> c[i];
    }
    for (int i=1; i<=smax; i++)
    {
        d[i]=smax*nmax+1;
    }
    for (int i=1; i<=n; i++)
    {
        for (int j=s; j>=0; j--)
        {
            if (d[j]<=smax && c[i]+d[j]<d[j+v[i]])
            {
                d[j+v[i]]=c[i]+d[j];
            }
        }
    }
    int sol=smax*nmax+1;
    for (int i=s; i<=smax; i++)
    {
        if (d[i]<sol)
            sol=d[i];
    }
    if (sol==smax*nmax+1)
    {
        co << "-1";
    }
    else
    {
        co << sol;
    }
    return 0;
}