Cod sursa(job #876540)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 11 februarie 2013 21:21:28
Problema Energii Scor 5
Compilator c Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
FILE *in,*out;
int w,g,c,i,e,j,max=0,min;
int v[10000];
struct generator
{
    int e,c;
};
int main()
{
    v[0]=1;
    in=fopen("energii.in","rt");
    out=fopen("energii.out","wt");
    fscanf(in,"%d%d",&g,&w);
    for (i=0; i<g; i++)
    {
        fscanf(in,"%d%d",&e,&c);
        if (max+e<10000)
            max+=e;
        for (j=max; j>=0; j--)
            if (v[j] && (v[j]+c<v[j+e] || v[j+e]==0))
                v[j+e]=v[j]+c;
    }
    if (max<w)
        fprintf(out,"-1\n");
    else
    {
        min=-1;
        for (i=max; i>=w; i--)
            if ((v[i]<min || min==-1) && v[i] )
                min=v[i];
        fprintf(out,"%d\n",min-1);
    }
     fclose(in);
    fclose(out);
    return 0;
}