Cod sursa(job #796556)

Utilizator dariusdariusMarian Darius dariusdarius Data 11 octombrie 2012 20:14:46
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<stdio.h>
#define inf 1000000000
struct MyStruct {int p,c;};
MyStruct a[1005];
int d[5005];
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<=w;i++)
		d[i]=inf;
	for(i=1;i<=n;i++)
		for(j=w;j>=0;j--)
			if(d[j]!=inf && j+a[i].p<=w && d[j]+a[i].c<d[j+a[i].p])
				d[j+a[i].p]=d[j]+a[i].c;
	if(d[w]!=inf)
		printf("%d\n",d[w]);
	else
		printf("-1\n");
	return 0;
}