Cod sursa(job #1833280)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 22 decembrie 2016 00:15:59
Problema Lupul Urias si Rau Scor 88
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<bits/stdc++.h>
#define maxT 1000005
using namespace std;
int n,x,l,d,a,t,maxt;
long long sol;
typedef struct tip
{
  int lana;
  bool operator<(const tip& other) const
  {
      return lana<other.lana;
  }
};
priority_queue<tip> q;
vector<int> v[maxT];
int main()
{
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    scanf("%d%d%d",&n,&x,&l);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&d,&a);
        t=1+((x-d)/l);
        if(t>0) v[t].push_back(a);
        maxt=max(maxt,t);
    }
    for(int i=maxt;i>=1;i--)
    {
        for(vector<int>::iterator it=v[i].begin();it!=v[i].end();it++)
        {
            q.push({*it});
        }
        sol+=1LL*q.top().lana;
        q.pop();
    }
    printf("%lld\n",sol);
    return 0;
}