Cod sursa(job #3159717)

Utilizator MihaiZ777MihaiZ MihaiZ777 Data 21 octombrie 2023 20:33:17
Problema Energii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

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

int g, w;
vector<pair<int, int>> v;

bool cmp(pair<int, int> &a, pair<int, int> &b) {
    return 1. * a.first / a.second > 1. * b.first / b.second;
}

int main() {
    fin >> g >> w;

    for (int i = 0; i < g; i++) {
        int e, c;
        fin >> e >> c;
        v.push_back({e, c});
    }

    sort(v.begin(), v.end(), cmp);

    int currEnergy = 0;
    int currCost = 0;

    for (auto x : v) {
        if (currEnergy >= w) {
            break;
        }

        currEnergy += x.first;
        currCost += x.second;
    }

    fout << currCost << '\n';

    return 0;
}