Cod sursa(job #2828158)

Utilizator AndreiP15Andrei Enea AndreiP15 Data 6 ianuarie 2022 22:23:57
Problema Lupul Urias si Rau Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
const int Nmax = 100005;
priority_queue<int> q;
pair<int,int>oi[Nmax];
int main()
{
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    int n,x,l;
    long long sol=0;
    cin>>n>>x>>l;
    for(int i=1;i<=n;i++)
    {
        int dist;
        cin>>dist>>oi[i].second;
        oi[i].first=(x-dist)/l;
    }
    sort(oi+1,oi+n+1);
    int p=n,t=oi[n].first;
    while(t>1)
    {
        while(p>0&&oi[p].first>=t)
        {
            q.push(oi[p].second);
            p--;
        }
        if(!q.empty())
        {
            sol+=q.top();
            q.pop();
        }
        t--;
    }
    cout<<sol;
    return 0;
}