Cod sursa(job #2463773)

Utilizator filiptudose2007Tudose Filip filiptudose2007 Data 28 septembrie 2019 12:55:04
Problema Lupul Urias si Rau Scor 88
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
struct icsde
{
    int d,val;
} v[100005];
inline static bool cmp(icsde a, icsde b)
{
    return a.d>b.d;
}
priority_queue<int> Q;
long long n,x,l,i,k,ans;
int main()
{
    f>>n>>x>>l;
    for(i=1; i<=n; ++i)
    {
        f>>v[i].d>>v[i].val;
        v[i].d=((v[i].d>x) ? 0 : ((x-v[i].d)/l)+1);
    }
    sort(v+1,v+n+1,cmp);
    for(k=v[1].d,i=1; k && i;--k)
    {
        while(v[i].d==k)
        {
            Q.push(v[i++].val);
        }
        if(!Q.empty())ans+=Q.top(),Q.pop();
        else k=v[i+1].d+1;
    }
    g<<ans<<'\n';
    return 0;
}