Cod sursa(job #675729)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 8 februarie 2012 00:20:41
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<cstdio>
int a[20001];
int main()
{
	int n,i,j,k,max=0,rez,x,y,min;
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d/n",&n);
	scanf("%d/n",&k);
	for (i=0;i<=k*2;i++) a[i]=9999999;
	scanf("%d %d/n",&x,&y);
	a[x]=y;
	for (i=1;i<=n;i++) 
	{
		scanf("%d %d/n",&x,&y);
		for (j=k;j>=0;j--)
{			if ((a[j]>0)&&(a[j]+y<a[j+x])) {a[j+x]=a[j]+y;if (max<j+x) max=j+x;}
}
if (y<a[x]) a[x]=y;
	}
	min=9999999;
	for (i=k;i<=max;i++)  if (a[i]<min) min=a[i];
	if (min!=9999999) printf("%d",min);else printf("-1");
	return 0;
}