Cod sursa(job #406649)

Utilizator vladcatrinaVlad Catrina vladcatrina Data 1 martie 2010 18:31:02
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>
#define MAX 10001

FILE*f = fopen("energii.in","r");
FILE*g = fopen("energii.out","w");

int n,w,i,j,v[5001],e[10001],c[10001];

int main() {
	
	fscanf(f,"%d %d",&n,&w);
	
	for(i=1;i<=n;i++){
		fscanf(f,"%d %d",&e[i],&c[i]);
	}
	
	for(i=1;i<=5000;i++)
		v[i]=MAX;
	
	for(i=1;i<=n;i++){
		for(j=e[i];j>=0;j--){
			
			if(v[j]!=MAX){
				if(v[e[i]+e[j]]>c[i]+v[j])
					v[e[i]+e[j]]=c[i]+v[j];
			}
			if(j>w && v[j]<v[w])
				v[w]=v[j];
			
		}
	}
	
	fprintf(g,"%d",v[w]);
	fclose(f);
	fclose(g);
	return 0;
}