Cod sursa(job #41218)

Utilizator znakeuJurba Andrei znakeu Data 28 martie 2007 00:50:19
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
struct generator
{
	int e,c;	
};
int v[10000];

int main()
{
	int w,g,c,i,e,j,max=0,min;
	v[0]=1;
	
	FILE *in=fopen("energii.in","r");
	fscanf(in,"%d%d",&g,&w);
	
	for (i=0; i<g; i++)
	{
		fscanf(in,"%d%d",&e,&c);
		if (max+e<10000)
			max+=e;
		for (j=max; j>=0; j--)
			if (v[j] && (v[j]+c<v[j+e] || v[j+e]==0))
				v[j+e]=v[j]+c;
		
	}
	fclose(in);
	
	FILE *out=fopen("energii.out","w");
	if (max<w)
		fprintf(out,"-1\n");
	else
	{
		min=-1;
		for (i=max; i>=w; i--)
			if ((v[i]<min || min==-1) && v[i] )
				min=v[i];
		fprintf(out,"%d\n",min-1);
		
		
		
	}
	fclose(out);	
	return 0;
}