Cod sursa(job #2645892)

Utilizator _dimitriTaranov-Mirea Dimitri _dimitri Data 29 august 2020 22:07:15
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
struct data {
unsigned int dist,fluff;
bool operator <(const data& x) const {
  return dist<x.dist;
}
} v[100001];
priority_queue<int> pq;
int main()
{
  unsigned int n,margin,step,len,sum;
  cin>> n >> margin >> step;
  for(int i=0; i<n; i++)
    cin >> v[i].dist >> v[i].fluff;
  v[n].dist=((1LL<<32)-1LL);
  sort(v,v+n);
  len=sum=0;
  for(int limit=margin%step; limit<=margin; limit+=step) {
    while(v[len].dist<=limit)
      pq.push(v[len++].fluff);
    sum+=pq.top();
    pq.pop();
  }
  cout << sum <<'\n';
  return 0;
}