Cod sursa(job #3342438)

Utilizator Alexia12345Maftei Alexia Alexia12345 Data 24 februarie 2026 11:13:55
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;

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

const int NMAX = 1e6 + 5;
int n,x,dx,rasp;
struct oaie
{
    int d,l;
    bool operator < (const oaie &a) const
    {
        return l<a.l;
    }
} oi[NMAX];
priority_queue<oaie> pq;

bool ord (const oaie &a, const oaie &b)
{
    return a.d<b.d;
}

int32_t main()
{
    fin>>n>>x>>dx;
    int suma=0;
    for(int i=0; i<n; i++)
    {
        fin>>oi[i].d>>oi[i].l;
        if(oi[i].d <= x)
            suma+=oi[i].l;
    }
    if(dx==0)
    {
        fout<<suma;
        return 0;
    }
    sort(oi,oi+n,ord);

    int lim = x%dx, i = 0;
    while(lim<=x)
    {
        for(; i<n && oi[i].d <=lim; i++)
            pq.push(oi[i]);
        if(!pq.empty())
        {
            rasp+=pq.top().l;
            pq.pop();
        }
        lim+=dx;
    }

    fout<<rasp;
    return 0;
}