Cod sursa(job #1199865)

Utilizator IulianBoboUAIC Boboc Iulian IulianBobo Data 20 iunie 2014 22:18:56
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <iostream>
#define inf 99000000

using namespace std;
int main()
{
	ifstream f("energii.in");
	ofstream g("energii.out");
	int G,i,j,W,minim,total=0;
	int energie[1001],cost[1001],rezultat[15001];
	f >> G>>W;
	for (i = 1; i <= G; i++)
		f >> energie[i] >> cost[i];
	for (i = 1; i <= G; i++) total = total + energie[i];
	if (total < W) g << -1;
	else
	{
		rezultat[0]=0;
		for(i=1;i<W+10000;i++) rezultat[i]=inf;
		for(i=1;i<=G;i++)
			for(j=W;j>=0;j--)
			{
				if(rezultat[j]!=inf)
					if(rezultat[j+energie[i]]==inf || rezultat[j+energie[i]]>rezultat[j]+cost[i])
						rezultat[j+energie[i]]=rezultat[j]+cost[i];
			}
		
		minim=inf;
		for(i=W;i<W+10000;i++)
			if(minim>rezultat[i]) minim=rezultat[i];
		g<<minim;
	}
	f.close();
	g.close();
	return 0;
}