Cod sursa(job #481092)

Utilizator andunhillMacarescu Sebastian andunhill Data 30 august 2010 15:56:03
Problema Energii Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
using namespace std;
#define gen 1002
#define energ 5001
#define oo 1<<30
ifstream f("energii.in");
ofstream g("energii.out");
int G,W,i,j,cmin,sum;
int energy[gen],cost[gen];
int b[gen][energ];
int main()
{	f>>G>>W;
	for(i=1;i<=G;i++)
		f>>energy[i]>>cost[i];
	for(i=1;i<=W;i++)
		b[0][i]=oo;
	for(i=1;i<=G;i++)
		for(j=1;j<=W;j++)
		{	if(b[i-1][j]!=0)
				b[i][j]=min(b[i-1][j],b[i-1][j-energy[i]]+cost[i]);
			else
				if(j-energy[i]>=0 && b[i-1][j-energy[i]]!=0)
					b[i][j]=b[i-1][j-energy[i]]+cost[i];
		}
	cmin=oo;
	for(i=1;i<=G;i++)
		for(j=W;j<=energ;j++)
			if(b[i][j]!=0 && cmin>b[i][j])
				cmin=b[i][j];
	if(cmin==oo)
		g<<-1;
	else
		g<<cmin;
	f.close();
	g.close();
	return 0;
}