Cod sursa(job #404060)

Utilizator BunicoolMoise Razvan Bunicool Data 25 februarie 2010 19:01:57
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
ifstream f("energii.in");
ofstream gg("energii.out");
int main()
{
	int ef,g,w,eg[1000],i,cg[1000],cmin,l;
	float r[1000],interm;
	f>>g>>w;
	ef=cmin=0;
	for(i=0;i<g;i++)
	{
		f>>eg[i]>>cg[i];
		r[i]=(float)eg[i]/cg[i];
	}
	l=1;
	while(l)
	{
		l=0;
		for(i=0;i<g-1;i++)
			if(r[i]<r[i+1])
			{
				l=1;
				interm=(float)r[i];
				r[i]=(float)r[i+1];
				r[i+1]=(float)interm;
				interm=eg[i];
				eg[i]=eg[i+1];
				eg[i+1]=interm;
				interm=cg[i];
				cg[i]=cg[i+1];
				cg[i+1]=interm;
			}
	}
	for(i=0;i<g;i++)
			if(eg[i]<=w && ef<w)
			{
				l=1;
				cmin+=cg[i];
				ef+=eg[i];
			}
	if(ef<w) gg<<"-1";
    else gg<<cmin;
	return 0;
}