Cod sursa(job #495265)

Utilizator cat_red20Vasile Ioana cat_red20 Data 24 octombrie 2010 17:04:22
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
#include<limits.h>
FILE *fin,*fout;
int v[5001],g,w,c,e,inf=LONG_MAX,j,max,i;
int main(){
fin=fopen("energii.in","r");
fout=fopen("energii.out","w");
fscanf(fin,"%d %d",&g,&w);
for(i=1;i<=w;i++){
v[i]=inf;
}
for(i=1;i<=g;i++){
	fscanf(fin,"%d %d",&e,&c);
	for(j=max;j>=0;j--){
		if(v[j]!=inf){
			if(j+e<=w){
			 if(v[j]+c<v[j+e]){
				v[j+e]=v[j]+c;
				if(j+e>max){max=j+e;}
			 }
			}
			else
				if(v[w]>v[j]+c){
					v[w]=v[j]+c;
					max=w;
				}
		}
	}
	
}
fprintf(fout,"%d",v[w]);
return 0;}