Cod sursa(job #796558)

Utilizator dariusdariusMarian Darius dariusdarius Data 11 octombrie 2012 20:20:37
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
#define inf 1000000000
struct MyStruct {int p,c;};
MyStruct a[1005];
int d[20005];
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	int n,w,i,j;
	scanf("%d%d",&n,&w);
	for(i=1;i<=n;i++)
		scanf("%d%d",&a[i].p,&a[i].c);
	for(i=1;i<=15005;i++)
		d[i]=inf;
	for(i=1;i<=n;i++)
		for(j=w;j>=0;j--)
			if(d[j]!=inf && d[j]+a[i].c<d[j+a[i].p])
				d[j+a[i].p]=d[j]+a[i].c;
	int min=inf;
	for(i=w;i<=15005;i++)
		if(min>d[i])
			min=d[i];
	if(min!=inf)
		printf("%d\n",min);
	else
		printf("-1\n");
	return 0;
}