Cod sursa(job #1257386)

Utilizator LegionHagiu Stefan Legion Data 7 noiembrie 2014 18:25:44
Problema Energii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
int costuri[10000000];
int main()
{
	ifstream in("energii.in");
	ofstream out("energii.out");
	int i, g, w, egi, cgi, enec = -1,maximumc=0,j;
	in >> g;
	in >> w;
	for (i = 1; i <= g; i++)
	{
		in >> egi;
		in >> cgi;
		for (j = maximumc;j >= 1; j--)
		{
			if (costuri[j] > 0)
			{
				if (costuri[j + cgi] < costuri[j] + egi) 
				{ 
					costuri[j + cgi] = costuri[j] + egi;
					if (j + cgi > maximumc)
					{
						maximumc = j + cgi; 
					} 
				}
			}
		}
		if (maximumc < cgi){ maximumc = cgi; }
		if (costuri[cgi]>egi||costuri[cgi]==0){ costuri[cgi] = egi; }
	}
	for (i = 1; i <= maximumc; i++)
	{
		if (costuri[i] >= w){ enec = i; break; }
	}
	out << enec;
	return 0;
}