Cod sursa(job #419931)

Utilizator NadoluBogdanNadolu Bogdan NadoluBogdan Data 18 martie 2010 10:45:05
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#include<limits.h>
int g1,w,i,j,m,n,a[5002];
int main(){
    FILE * f=fopen("energii.in","r");
    FILE * g=fopen("energii.out","w");
    fscanf (f,"%d %d",&g1,&w);
    a[0]=0;
    for (i=1;i<=w;i++)
        a[i]=INT_MAX;
    for (i=1;i<=g1;i++){
        fscanf(f,"%d %d",&m,&n);
        for (j=w;j>=0;j--)
            if (a[j]!=INT_MAX)
				if (a[j]+n<a[j+m]&&j+m<=w)
                    a[j+m]=a[j]+n;
                else
                    if (a[j]+n<a[w]&&j+m>w)
                        a[w]=a[j]+n;
        }
        if (a[w]!=INT_MAX)
           fprintf(g,"%d",a[w]);
       else
            fprintf(g,"%d",-1);
        return 0;
}