Cod sursa(job #34052)

Utilizator za_wolfpalianos cristian za_wolf Data 20 martie 2007 00:03:32
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
long x[100002],i,j,n,m,k,l,a,z,s[100002],y[100002];
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);

	scanf("%ld%ld",&n,&m);
	for (i=1;i<=n;i++)
	scanf("%ld%ld",&x[i],&y[i]);
	/*a=1;
	while (a)
	{
	a=0;
	for (i=1;i<n;i++)
	if (x[i]>x[i+1]) {a=x[i]; x[i]=x[i+1]; x[i+1]=x[i]; a=y[i]; y[i]=y[i+1]; y[i+1]=a; a=1;}
	}
	*/
	s[0]=1;
	for (i=1;i<=n;i++)
		for (j=100002;j>=0;j--)
			if (s[j]) if ((s[j+x[i]]&&s[j+x[i]]>s[j]+y[i])||(s[j+x[i]]==0)) {s[j+x[i]]=s[j]+y[i];}
	z=2000000000;
	for (i=m;i<=100001;i++)
	if (s[i]<z&&s[i]!=0) {z=s[i];}
	if (z==2000000000) z=0;
	printf("%ld\n",z-1);
	return 0;
}