Cod sursa(job #1786281)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 22 octombrie 2016 18:04:54
Problema Energii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#define min(a,b) a<b? a:b
#define INF 2000000000
int d[10001],max;
int main()
{
    FILE *fin,*fout;
    fin=fopen("energii.in","r");
    fout=fopen("energii.out","w");
    int g,w,i,e,c,j;
    fscanf(fin,"%d%d",&g,&w);
    for(i=0;i<1001;i++)
        d[i]=INF;
    for(i=0;i<g;i++)
    {
        fscanf(fin,"%d%d",&e,&c);
        max=min(max+e,w);
        for(j=max-1;j>=e;j--)
            d[j]=min(d[j],d[j-e]+c);
        for(;j>=0;j--)
            d[j]=min(d[j],c);
    }
    if(d[w-1]!=INF)
        fprintf(fout,"%d",d[w-1]);
    else
        fprintf(fout,"-1");
    fclose(fin);
    fclose(fout);
    return 0;
}