Cod sursa(job #2463920)

Utilizator iulianarsenoiuArsenoiu Iulian iulianarsenoiu Data 28 septembrie 2019 13:21:37
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <queue>
#include <algorithm>

using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
priority_queue <int> Q;
struct xyz
{
    int t,d;
};
xyz v[100005];
int n,x,l,k,i,r,y;
bool cmp(xyz x, xyz y)
{
    return x.d>y.d;
}
int main()
{
    f>>n>>x>>l;
    for(i=1;i<=n;i++){
        f>>y>>v[i].t;
        if(x>y)
        v[i].d=(x-y)/l+1;
    }
    sort(v+1,v+n+1,cmp);
    i=1;
    for(k=v[1].d;k && i<=n;--k)
    {
        while(v[i].d==k && i<=n)
        {
            Q.push(v[i].t);
            i++;
        }
        if(!Q.empty())
        {
            r+=Q.top();
            Q.pop();
        }
        else
            k=v[i].d+1;
    }
    g<<r<<'\n';
    return 0;
}