Cod sursa(job #476840)

Utilizator aladinaladin aladinn aladin Data 12 august 2010 14:37:12
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <cstdio>
int main()
{
	int q,j,c[5001],n,x,y,i,m,min=234424242;
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d %d",&n,&m);
	for (i=1;i<=m;++i) c[i]=min;
	for (i=1;i<=n;++i)
	{
		scanf("%d %d",&x,&y);
		for (j=m-1;j>=0;--j)
			for (q=(m-j)/x+1;q>0;--q)
				if (j+x*q>m) {if (c[m]>c[j]+y*q) c[m]=c[j]+y*q;} else
				if (c[j+x*q]>c[j]+y*q) c[j+x*q]=c[j]+y*q;
	}
	if (c[m]==min) printf("-1"); else
	printf("%d",c[m]);
	return 0;}