Cod sursa(job #2332334)

Utilizator ZydanCostica Dan Zydan Data 30 ianuarie 2019 17:26:01
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;

#define fin "energii.in"
#define fout "energii.out"


ifstream in(fin);
ofstream out(fout);

struct generator
{
	int cost;
	int prod;
};



generator gen[1000];
int g,w;
int mins[10000];

int solvez(int cattrebe)
{
	if (cattrebe <= 0) return 0;

	if (mins[cattrebe] > -1)
	{
		return mins[cattrebe];
	}



	int mincost = 100000;
	for (int i = 0; i < g; i++)
	{
		
		if (gen[i].prod <= cattrebe)
		{
			int av = solvez(cattrebe - gen[i].prod);



			if ((gen[i].cost + av ) <  mincost)
			{
				mincost = gen[i].cost + av;
			}


			
		}

	}
	mins[cattrebe] = mincost;
	return mincost;
		
}
int deval;
int main()
{
	in >> g;
	in >> w;
	for (int i = 0; i < 10000; i++)
	{
		mins[i] = -1;
	}


	for (int i = 0; i < g; i++)
	{
		in >> gen[i].prod;
		in >> gen[i].cost;
	}

	out <<solvez(w);
	
	
}