Cod sursa(job #2321787)

Utilizator bananamandaoneTudor Cosmin Oanea bananamandaone Data 16 ianuarie 2019 17:24:37
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,X,L;
struct oaie
{
    int dist,lana;
};
oaie a[100003];
priority_queue<int>q;

void Citire()
{
    int i;
    fin>>n>>X>>L;
    for(i=1;i<=n;i++)
        fin>>a[i].dist>>a[i].lana;
}

bool CMP(oaie A, oaie B)
{
    return A.dist < B.dist;
}

void Rezolvare()
{
    sort(a+1,a+n+1,CMP);
    int i,st,dr;
    long long sol;
    sol = 0;
    st = 0;
    dr = X % L;

    for(i=1;dr<=X;st=dr+1,dr+=L)
    {
        while(i<=n && st<=a[i].dist && a[i].dist<=dr)
        {
            q.push(a[i].lana);
            i++;
        }
        if(!q.empty())
        {
            sol += q.top();
            q.pop();
        }
    }
    fout<<sol<<"\n";
}

int main()
{
    Citire();
    Rezolvare();

    fin.close();
    fout.close();
    return 0;
}