Cod sursa(job #788070)

Utilizator ichigo2908mantu radu ichigo2908 Data 14 septembrie 2012 01:27:53
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
using namespace std;

typedef struct gen
{
	int putere, cost;
};

gen u[1001];
int g, w, v[50000];	//v[i] = energia maxima obtinuta cu i generatoare

int main()
{
	int i, j, s=0;

	ifstream in("energii.in");
	ofstream out("energii.out");

	in>>g>>w;
	for(i=0;i<g;i++)
	{
		in>>u[i].putere>>u[i].cost;
		s+=u[i].cost;
	}

	for(i=0;i<g;i++)
	{
		for(j=s;j>0;j--)
			if(v[j] && v[j+u[i].cost]<v[j]+u[i].putere)
				v[j+u[i].cost]=v[j]+u[i].putere;
		if(v[u[i].cost]<u[i].putere)
			v[u[i].cost]=u[i].putere;
	}

	for(i=1;i<=s && v[i]<w;i++)
		continue;

	if(i>s)
		out<<"-1";
	else
		out<<i;

	in.close();
	out.close();

	return 0;
}