Cod sursa(job #419904)

Utilizator NadoluBogdanNadolu Bogdan NadoluBogdan Data 18 martie 2010 10:16:50
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 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<=g1;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;
}