Cod sursa(job #707934)

Utilizator vandrei95Zamfir Vlad vandrei95 Data 6 martie 2012 09:24:19
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<iostream>
#include<fstream>
#include<algorithm>
#include<math.h>
using namespace std;
float ef[1002],w[1002],s[1002];
void sortare(int n)
{
	int i,sortat;
	float aux;
	do
	{
		sortat=1;
		for(i=1;i<n;i++)
			if(ef[i]<ef[i+1])
			{
				aux=ef[i];
				ef[i]=ef[i+1];
				ef[i+1]=aux;
				aux=w[i];
				w[i]=w[i+1];
				w[i+1]=aux;
				aux=s[i];
				s[i]=s[i+1];
				s[i+1]=aux;
				sortat=0;
			}
	}
	while(sortat==0);
}
	
int main(void)
{
	fstream f,g;
	f.open("energii.in",ios::in);
	g.open("energii.out",ios::out);
	int n,e,sumw=0,sums=0,i;
	f>>n>>e;
	for(i=1;i<=n;i++)
	{
		f>>w[i]>>s[i];
		sumw+=w[i];
		sums+=s[i];
	}
	for(i=1;i<=n;i++)
		ef[i]=w[i]/s[i];
	sortare(n);
	if(sumw<e)
		g<<-1;
	else
		if(sumw==e)
			g<<sums;
		else
		{
			int ce=0;
			sumw=0;i=0;
			while(ce<e)
			{
				sumw+=w[++i];
				ce+=s[i];
				g<<ce;
			}
		}
}