Cod sursa(job #1707988)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 26 mai 2016 11:48:49
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<cstdio>
using namespace std;
int g,n,e[1005],c[1005],v[5005],minim=999999999,energie;
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d",&g);
    scanf("%d",&n);
    for(int i=1;i<=g;i++)
    {
        scanf("%d%d",&e[i],&c[i]);
    }
    int maxim=0;
    v[0]=0;
    for(int i=1;i<=n;i++) v[i]=-1;
    for(int i=0;i<=maxim;i++)
    {
        if (v[i]!=-1)
        {
        for(int j=1;j<=g;j++)
        {
            if ((i+e[j])<=n)
            {
                if (v[i+e[j]]==-1 || (v[i+e[j]]>(c[i]+c[j])))
                {
                    v[i+e[j]]=c[i]+c[j];
                }
            }
                else
            if ((i+e[j])>n)
            {
                if ((c[i]+c[j])<minim)
                {
                    minim=c[i]+c[j];
                    energie=i+e[j];
                }
            }
        }
        }
    }
    if (v[n]!=-1) printf("%d\n",v[n]);
        else printf("%d\n",minim);
        return 0;
}