Cod sursa(job #2655408)

Utilizator Teod12ALEXANDRESCU teodora Teod12 Data 4 octombrie 2020 12:32:10
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
int suma[4000001];
int main()
{
    FILE *fin,*fout;
    fin=fopen("energii.in","r");
    fout=fopen("energii.out","w");
    int n,max,e,c,i,j;
    fscanf(fin,"%d%d",&n,&max);
    for(i=1;i<=max;++i)
        suma[i]=100000000;
    for(i=1;i<=n;++i){
        fscanf(fin,"%d%d",&e,&c);
        for(j=max-1;j>=1;--j){
            if(e+j>max){
                if(c+suma[j]<suma[max])
                    suma[max]=c+suma[j];
            }
            else
                if(c+suma[j]<suma[j+e])
                    suma[j+e]=c+suma[j];
        }
        if(c<suma[e])
            suma[e]=c;
    }
    if(suma[max]==100000000)
        fprintf(fout,"-1");
    else
        fprintf(fout,"%d",suma[max]);
    fclose(fin);
    fclose(fout);
    return 0;
}