Cod sursa(job #2865209)

Utilizator Stefy0_0Stefan Lucian Gramada Stefy0_0 Data 8 martie 2022 16:48:48
Problema Energii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

struct generator
{
    int energie;
    int cost;
}v[1001];

int N, W;
int CT;

void citire()
{
    fin>>N>>W;
    for(int i=1; i<=N; i++)
        fin>>v[i].energie>>v[i].cost;
}

bool cmp(generator a, generator b )
{
    if(a.energie * b.cost > b.energie * a.cost)
        return 1;
    else if(a.energie * b.cost == b.energie * a.cost)
    {
        if(a.cost < b.cost)
            return 1;
    }
    return 0;
}

int main()
{
    citire();
    sort(v+1, v+N+1, cmp);
    int w=0;
    for(int i=1; i<=N and w<W; i++)
    {
        w+=v[i].energie;
        CT+=v[i].cost;
    }
    fout<<CT;
    return 0;
}