Cod sursa(job #707917)

Utilizator vandrei95Zamfir Vlad vandrei95 Data 6 martie 2012 09:15:23
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 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 calcul(int n, int e)
{
	int ce=0,sumw=0,i=0;
	while(ce<e)
	{
		sumw+=w[++i];
		ce+=s[i];
	}
	return ce;
}
	
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
			g<<calcul(n,e);
		
			
}