Cod sursa(job #151310)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 7 martie 2008 23:30:52
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <stdio.h>
#define INF 12128
int v[5128];
int main()
{
	int a,b,i,n,w,rez,j;
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d%d", &n, &w);
	for(i=1;i<=w;i++)
		v[i]=INF;
	rez=INF;
	for(i=1;i<=n;i++)
	{
		scanf("%d%d", &a, &b);
		
		if(a>=w) 
		{
			if(b<rez) 
				rez=b; 
		}
		else 
		{
			for(j=w-a;j<=w;j++)
				if(v[j]+b<rez) 
					rez=v[j]+b;
			for(j=w-a;j>=0;j--)
				if(v[j]+b<v[j+a]) 
					v[j+a]=v[j]+b;
		}
	}
	if (rez!=INF) 
		printf("%d\n",rez);
	else 
		printf("-1\n");
}