Cod sursa(job #2921560)

Utilizator albertaizicAizic Albert albertaizic Data 31 august 2022 17:46:00
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <queue>
using namespace std;
#define MAX_N 100000
pair <int,int> poz[MAX_N+1];
priority_queue<int> heap;

bool cmp(const pair<int,int>& a, const pair<int,int>& b) {
  return a.first<b.first;
}

void insert(int value) {
  heap.push(value);
}
int extractTop() {
  int top;

  top = 0;
  if (!heap.empty()) {
    top = heap.top();
    heap.pop();
  }

  return top;
}

int main(){
    FILE *fin,*fout;
    int n,i,x,l;
    long long s;
    fin=fopen("lupu.in","r");
    fout=fopen("lupu.out","w");
    fscanf(fin,"%d%d%d",&n,&x,&l);
    for(i=0;i<n;i++){
      fscanf(fin,"%d%d",&poz[i].first,&poz[i].second);

    }

    sort(poz,poz+n,cmp);
    s=0;
    i=x%l;
    int jj=0;
    while(i<=x){
      while(jj<=n && poz[jj].first<=i){
        insert(poz[jj++].second);
      }
      s+=extractTop();
      i+=l;
    }
    fprintf(fout,"%lld\n",s);
    fclose(fout);
    return 0;
}