Cod sursa(job #1532861)

Utilizator flibiaVisanu Cristian flibia Data 21 noiembrie 2015 18:16:58
Problema Energii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <cmath>
  
using namespace std;
  
int main()
  
{
    ifstream fin("energii.in");
    ofstream fout("energii.out");
    int t, e, a[1002], b[1002]; double c[1002];
    fin >> t;
    fin >> e;
    for (int i = 1; i <= t; i++)
    {
        fin >> a[i] >> b[i];
        c[i] = (b[i]*1.00)/ a[i];   
    }   
    bool u;
    do {
        u = false;
        for(int j = 1; j <= t; j++)
            if(c[j] < c[j-1])
            {
                swap(c[j],c[j-1]);
                swap(a[j],a[j-1]);
                swap(b[j],b[j-1]);
                u = true;
            }
    } while (u);
    for (int i = 1; i <= t; i++) cout << c[i] << " ";
    for (int i = 1; i < t ; i++)
    {
    	if(a[i] < a[i+1])
    	{
    		swap(a[i],a[i+1]);
    		swap(b[i],b[i+1]);
    		swap(c[i],c[i+1]);
		}
	}
	int energie = 0, suma = 0;
    int i = 1;
    while (energie < e && i <= t)
    {
        energie += a[i];
        suma += b[i];
        i++;
    }
    cout << energie;
    if (energie >= e) 
        fout << suma;
    else fout << "-1";
    return 0;
}