Cod sursa(job #2975068)

Utilizator adelina_15InfoAdelina Radoi adelina_15Info Data 5 februarie 2023 12:33:27
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#include <algorithm>

using namespace std;

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

int n, x, l;

priority_queue<int> wool;
vector<pair<int,int>> a;

void AfisareVector()
{
    for(auto i = 0; i < a.size(); i++)
        cout << a[i].first << " " << a[i].second << "\n";
}

int main()
{
    fin >> n >> x >> l;
    for(int i = 0; i < n; i++)
    {
        int a1, a2;
        fin >> a1 >> a2;
        int timp = (x-a1)/l;
        a.push_back({timp, a2});
    }
    sort(a.begin(), a.end());
    //AfisareVector();
    long long sum = 0;
    int i = a.size()-1;
    int timp = a[a.size()-1].first;
    while(timp >=0)
    {
        while(i >= 0 && a[i].first >= timp)
        {
            wool.push(a[i].second);
            i--;
        }
        if(!wool.empty())
        {
            sum += (wool.top());
            wool.pop();
        }
        timp--;
    }
    fout << sum;
    return 0;
}