Cod sursa(job #495263)

Utilizator CS-meStanca Marian Ciprian CS-me Data 24 octombrie 2010 17:02:47
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#define inf 2000000000
FILE *fin, *fout;
int n,i,j,x,y,v[5002],e,p;

int main(){
    fin=fopen("energii.in","r");
    fout=fopen("energii.out","w");

    fscanf(fin,"%d %d",&n,&e);

	for(i=1;i<=e;i++){
        v[i]=inf;
    }
    p=0;
    for(i=1;i<=n;i++){
        fscanf(fin,"%d %d",&x,&y);

        for(j=p;j>=0;j--){
            if(v[j]!=inf){
                if(j+x>e){
                    if(v[e]>v[j]+y) v[e]=v[j]+y;
                    if(p<e){
                        p=e;
                    }
                }
                else{
                    if(v[j+x]>v[j]+y){
                        v[j+x]=v[j]+y;
                    }
                    if(p<j+x){
                        p=j+x;
                    }
                }
            }
        }
    }

    fprintf(fout,"%d",v[e]);

    fclose(fout);
    fclose(fin);
return 0;
}