Cod sursa(job #1708340)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 26 mai 2016 22:04:14
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 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",&n);
    scanf("%d",&g);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&e[i],&c[i]);
    }
    v[0]=0;
    for(int i=1;i<=g;i++) v[i]=-1;
    int maxim=0;
    for(int i=0;i<=maxim;i++)
    {
        if(v[i]!=(-1))
        {
            for(int j=1;j<=n;j++)
            {
                if ((i+e[j])<=g && (v[i+e[j]]==-1 || ((v[i]+c[j])<v[i+e[j]])))
                {
                    v[i+e[j]]=v[i]+c[j];
                    if((i+e[j])>maxim) maxim=i+e[j];
                }
                 else
                if((i+e[j])>g)
                {
                    if ((v[i]+c[j])<minim) minim=v[i]+c[j];
                }
            }
        }
    }
    if (v[g]!=-1) printf("%d\n",v[g]);
        else printf("%d\n",minim);
    return 0;
}