Cod sursa(job #1563992)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 7 ianuarie 2016 17:52:34
Problema Energii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#define INF 50000010

int v[5010],c[1010],e[1010];

int main ()
{
    FILE *fin,*fout;
    int n,i,j,g,k;
    fin=fopen("energii.in","r");
    fout=fopen("energii.out","w");
    fscanf(fin,"%d%d", &n, &g);
    for (i=1;i<=n;i++)
         fscanf(fin,"%d%d", &e[i], &c[i]);
    for (i=1;i<=g;i++)
        v[i]=INF;
    for (i=1;i<=n;i++)
        for (j=g-1;j>=0;j--)
            if (v[j]!=INF) {
                k=j+e[i];
                if (k>g)
                    k=g;
                if (v[k]>v[j]+c[i])
                    v[k]=v[j]+c[i];
            }
    if (v[g]==INF)
        fprintf(fout,"-1");
    else
        fprintf(fout,"%d", v[g]);
    return 0;
}