Cod sursa(job #2216702)

Utilizator vadim171098vadim pislari vadim171098 Data 27 iunie 2018 18:34:19
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

typedef struct nume{
    int cant;
    int cost;
    float efic;
} numere;
bool how_to_sort(numere a, numere b){ return a.efic <b.efic ;}

int main()
{
    ifstream in;
    in.open("energii.in");
    ofstream out;
    out.open("energii.out");
    int nr,i,energia;
    numere arr[10001];
    in >> nr >> energia;
    for(i = 0; i != nr ; i++ ){
        in >> arr[i].cant >> arr[i].cost;
        arr[i].efic = (float)arr[i].cost / arr[i].cant;
    }
    sort(arr,arr+nr,how_to_sort);
    int sum = 0,rasp = 0;
    for(i = 0; i != nr ; i++ ){
        if(sum >= energia) break;
        sum += arr[i].cant;
        rasp += arr[i].cost;
    }
    if(sum < energia) out <<"-1"<<endl;
    out << rasp <<endl;
    return 0;

}