Cod sursa(job #2611628)

Utilizator alex_benescuAlex Ben alex_benescu Data 7 mai 2020 11:12:41
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
typedef pair <unsigned long long int,unsigned long long int> copil;
copil v[200001],aux;
priority_queue<unsigned long long int> coada;
int n,ok;
unsigned long long int x,l2,suma;
int partitie (int l,int r){
  int pivot=v[r].first,poz=l-1;
  for(int j=l;j<=r;j++){
    if(v[j].first<=pivot){
      poz++;
      aux=v[poz];
      v[poz]=v[j];
      v[j]=aux;
    }
  }
  return poz;
}
void quicksort(int l,int r){
  if(l<r){
    int pivot=partitie(l,r);
    quicksort(l,pivot-1);
    quicksort(pivot+1,r);
  }
}
int main(){
  f>>n>>x>>l2;
  for(int i=0;i<n;i++)
    f>>v[i].first>>v[i].second;
  sort(v, v+n);
  int u=x%l2,d=0;
  for(int i=u;i<=x;i+=l2){
    for(;v[d].first<=i&&d<=n;++d)
      coada.push(v[d].second);
    if(!coada.empty()){
      suma+=coada.top();
      coada.pop();
    }
  }
  g<<suma;
  return 0;
}