Cod sursa(job #1589535)

Utilizator Marius7122FMI Ciltea Marian Marius7122 Data 4 februarie 2016 09:33:18
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#define inf 999999
int i,j,w,g,eg[1001],cg[1001],cost[200002],min,m;

int main()
{
    FILE*f1,*f2;
    f1=fopen("energii.in","r");
    f2=fopen("energii.out","w");
    fscanf(f1,"%d%d",&g,&w);
    for(i=0;i<g;i++)
        fscanf(f1,"%d%d",&eg[i],&cg[i]),
        cost[eg[i]]=cg[i];

    for(i=1;i<=w;i++)
        if(cost[i])
            for(j=0;j<g;j++)
            {
                if(cost[i+eg[j]]>cost[i]+cg[j] || cost[i+eg[j]]==0)
                {
                    cost[i+eg[j]]=cost[i]+cg[j];
                    if(i+eg[j]>m)
                        m=i+eg[j];
                }
            }
    min=inf;
    for(i=w;i<=m;i++)
        if(cost[i]<min && cost[i])
            min=cost[i];
    if(min!=inf)
        fprintf(f2,"%d",min);
    else
        fprintf(f2,"-1");
    return 0;
}