Cod sursa(job #2080361)

Utilizator iulius510iulius alexandru iulius510 Data 2 decembrie 2017 20:36:03
Problema Energii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#include <stdlib.h>
int G ,W,C[1002],E[1002],D[5002],i,j;
#define inf 200000
int min(int a,int b)
{
    if(a>=b)
        return b;
    else return a;
}
int main()
{   FILE *f,*g;
    f=fopen("energii.in","r");
    g=fopen("energii.out","w");
    fscanf(f,"%d %d",&G,&W);
    for(i=1;i<=G;i++)
        fscanf(f,"%d%d",&E[i],&C[i]);
    for(i=1;i<=W;i++)
        D[i]=inf;

    for(i=1;i<=G;i++)
       {for(j=W;j>=E[i];j--)
         D[j]=min(D[j],D[j-E[i]]+C[i]);
         for(j=1;j<=min(W,E[i]);j++)
            D[j]=min(D[j],C[i]);
       }
    if(D[W]==inf)
       fprintf(g,"%d",-1);
    else
        fprintf(g,"%d",D[W]);

    return 0;
}