Cod sursa(job #3235215)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 16 iunie 2024 12:09:02
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int lana,t,m,n,last,p,sol,x,d;
priority_queue<int>q;
struct oaie{
    int et,l;
}v[100002];
bool cmp(oaie a,oaie b){
    return a.et>b.et;
}
int main()
{
    cin>>n>>x>>d;
    for(int i=1;i<=n;i++){
        cin>>t>>lana;
        if(t>x)
            continue;
        v[++m]={(x-t)/d,lana};
        last=max(last,(x-t)/d);
    }
    sort(v+1,v+m+1,cmp);
    p=1;
    for(int i=last;i>=0;i--){
        while(p<=m&&v[p].et==i)
            q.push(v[p++].l);
      if(!q.empty()){
        sol+=q.top();
        q.pop();
      }
    }
    cout<<sol;
    return 0;
}