Cod sursa(job #590926)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 21 mai 2011 13:32:14
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>

int g,w,x[1001][2],y[50001],min=1000000;
bool z[50010];

int main() {
	int i,j;
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d%d",&g,&w);
	z[0]=true;
	for(i=1;i<=50000;++i)
		y[i]=100000000;
	for(i=1;i<=g;++i)
	{
		scanf("%d%d",&x[i][0],&x[i][1]);
		for(j=5000;j>=0;--j)
		{
			if(z[j] && y[j+x[i][0]]>y[j]+x[i][1])
			{
				z[j+x[i][0]]=true;
				y[j+x[i][0]]=y[j]+x[i][1];
			}
		}
	}
	for(i=w;i<=50000;++i) {
		if(z[i] && y[i]<=min)
			min=y[i];
	}
	if(min==1000000)
		printf("-1");
	else
		printf("%d",min);
	return 0;
}