Cod sursa(job #441535)

Utilizator Teodor94Teodor Plop Teodor94 Data 12 aprilie 2010 22:57:26
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<cstdio>

const int N=1<<13;

int v[N];

int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	int n,w;
	scanf("%d%d",&n,&w);
	for (int i=1;i<=w;i++)
		v[i]=-1;
	for (int i=1;i<=n;i++)
	{
		int e,c;
		scanf("%d%d",&e,&c);
		for (int j=w;j>=e+1;j--)
			if (v[j-e]!=-1)
				if (v[j]==-1 || v[j-e]+c<v[j])
					v[j]=v[j-e]+c;
		for (int j=e;j>0;j--)
			if (v[j]==-1 || c<v[j])
				v[j]=c;
	}
	printf("%d\n",v[w]);
	return 0;
}