Cod sursa(job #2149626)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 2 martie 2018 20:04:06
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream gout("energii.out");
int i, j, g[1002], a[15005], v[1002], G, n, vmin=100001, S;
int main()
{
    f>>n>>G;
    for(i=1;i<=n;++i) f>>g[i]>>v[i], S+=g[i];
    if(S<G) gout<<-1<<"\n";
    else
    {
        a[0]=1;
        for(i=1;i<=n;++i)
            for(j=G;j>=0;--j)
                if(a[j])
                {
                    if(!a[j+g[i]]) a[j+g[i]]=a[j]+v[i];
                    else if(a[j]+v[i]<a[j+g[i]]) a[j+g[i]]=a[j]+v[i];
                    if(j+g[i]>=G) vmin=min(vmin, a[j+g[i]]);
                }
        gout<<vmin-1<<"\n";
    }
    return 0;
}