Cod sursa(job #2821981)

Utilizator mariaionescu2006Ionescu Maria mariaionescu2006 Data 23 decembrie 2021 13:51:09
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int nmax=100005;
priority_queue<int>q;
struct oaie
{
    int lana,timp;
    bool operator<(const oaie&o) {return timp<o.timp;}
};
oaie oi[nmax];
int main()
{
    int n,x,l;
    long long sol=0;
    fin >>n>>x>>l;
    for(int i=1;i<=n;i++)
       {int dist;
        fin >>dist>>oi[i].lana;
        oi[i].timp=(x-dist)/l;}
    sort(oi+1,oi+n+1);
    int p=n,t=oi[n].timp;
    while(t>=0)
         {while(p>0 && oi[p].timp>=t)
               {q.push(oi[p].lana);
                p--;}
          if(!q.empty()) {sol+=q.top();
                          q.pop();}
          t--;}
    fout <<sol;
    return 0;
}