Cod sursa(job #465694)

Utilizator crushackPopescu Silviu crushack Data 25 iunie 2010 12:04:22
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#define lung 5000000
#define lng 1000

int m[lung+1],G,E;
struct generator
{int e,c;} a[lng];

void citire()
{
	int i;
	freopen("energii.in","r",stdin);
	scanf("%d%d",&G,&E);
	for (i=0;i<G;i++)
		scanf("%d%d",&a[i].e,&a[i].c);
	fclose(stdin);
}

int rez()
{
	int i,j;
	for (i=1;i<=E || !m[i-1];i++)
	{
		m[i]=-1;
		for (j=0;j<G;j++)
			if ( i>=a[j].e && ( m[i]==-1 || m[ i-a[j].e]+a[j].c<m[i] ) )
				m[i]=  m[ i-a[j].e ] + a[j].c;
		if (m[i]==-1)
			m[i]=0;
	}
	return m[i-1];
}

void scriere()
{
	freopen("energii.out","w",stdout);
	printf("%d\n",rez());
	fclose(stdout);
}

int main()
{
	citire();
	scriere();
	return 0;
}