Cod sursa(job #2861779)

Utilizator tudor_costinCostin Tudor tudor_costin Data 4 martie 2022 13:52:39
Problema Lupul Urias si Rau Scor 32
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<int> lana;
struct oi
{
    long long int d,lan,m;
    bool operator <(const oi &o)
    {
        return m>o.m;
    }
};
oi v[100005];
int main()
{
    long long int n,x,l,a,b,c,cnt=0;
    long long int sol=0;
    fin>>n>>x>>l;
    for(int i=1; i<=n; i++)
    {
        fin>>a>>b;
        c=(x-a)/l;
        if(x>=a) v[i]= {a,b,c};
    }
    sort(v+1,v+n+1);
    /*for(int i=1;i<=n;i++)
    {
        fout<<v[i].d<<' '<<v[i].lan<<' '<<v[i].m<<'\n';
    }*/
    long long int moment=-1;
    for(int i=1;i<=n;i++)
    {
        if(moment!=v[i].m && !lana.empty())
        {
            sol+=lana.top();
            lana.pop();
            moment=v[i].m;
            lana.push(v[i].lan);
        }
        else
        {
           lana.push(v[i].lan);
           moment=v[i].m;
        }
    }
    sol+=lana.top();
    fout<<sol;
    return 0;
}