Cod sursa(job #3222518)

Utilizator redstonegamer22Andrei Ion redstonegamer22 Data 10 aprilie 2024 17:46:08
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

ifstream cin("lupu.in");
ofstream cout("lupu.out");

#define int long long
vector < int > dp;
vector < pair < int, int > > v;
priority_queue < int > pq;

signed main()
{
    int n,x,l,ans=0;
    cin>>n>>x>>l;
    dp.resize(n+1);
    v.resize(n+1);
    for(int i=1; i<=n; i++)
        cin>>v[i].first>>v[i].second;
    sort(v.begin()+1,v.end());
    int best=0,nextl=x%l;
    for(int i=1; i<=n; i++)
    {
        while(pq.size() && nextl<=x && v[i].first>nextl)
        {
            nextl+=l;
            best= pq.top();
            ans+=best;
            pq.pop();
        }
        if(v[i].first>x)
            break;
        pq.push(v[i].second);
        if(i==n)
        {
            while(pq.size() && nextl<=x)
            {
                nextl+=l;
                best= pq.top();
                ans+=best;
                pq.pop();
            }
        }
    }
    cout<<ans;
    return 0;
}