Cod sursa(job #113199)

Utilizator eddieOlariu Eduard Iuliu eddie Data 9 decembrie 2007 09:57:01
Problema Energii Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
int suma [10010];
int main()
{
	freopen ("energii.in","r",stdin);
	freopen ("energii.out","w",stdout);
	int n, ed;
	scanf("%d %d",&n,&ed);
	int e[1005],c[1005];
	for (int i=1;i<=n;i++)
		scanf("%d %d",&e[i],&c[i]);
	int ulte=0;
	for (int i=1;i<=n;i++)
	{
		for ( int j=ulte;j>=1;j--)
			if ( suma[j]!=0 )
			{
				int energie=e[i]+j;
				if ( energie>ed )
					energie=ed;
				if ( suma[energie]>c[i]+suma[j] || suma[energie]==0 )
				{
					suma[energie]=c[i]+suma[j];
					if ( ulte<energie )
						ulte=energie;
				}
			}
		int energie = e[i];
		if ( energie > ed )
			energie=ed;
		if ( suma[energie]>c[i] || suma[energie]==0)
		{
			suma[energie]=c[i];
			if ( ulte<energie )
				ulte=energie;
		}
	}
	printf("%d\n",suma[ed]);
	fclose(stdout);
	return 0;
}