Cod sursa(job #675731)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 8 februarie 2012 00:26:58
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
long long a[30001];
int main()
{
	int n,i,j,k,max=0,rez,x,y;
	long long min=99999999;
	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]=99999999;
	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 ((min>a[j+x])&&(j+x>=k)) min=a[j+x];
			}
		}
		if (y<a[x]) a[x]=y;
		if ((min>a[x])&&(x>=k)) min=a[x];
	}
	if (min!=99999999) printf("%lld",min);else printf("-1");
	return 0;
}