Cod sursa(job #2131481)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 14 februarie 2018 18:54:28
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n,X,L,mx,i,ct,j;
long long sol;
struct elem{int val,D;}a[100005];
inline bool cmp(elem A,elem B)
   {if(A.D==B.D)return A.val>B.val;
    else return A.D>B.D;
   }
priority_queue<int>pq;
int main()
{fin>>n>>X>>L;
 for(i=1;i<=n;i++)
    {fin>>a[i].D>>a[i].val;
     a[i].D=(X-a[i].D)/L+1;
    }
 sort(a+1,a+n+1,cmp);
 //for(i=1;i<=n;i++)
   // fout<<a[i].D<<" "<<a[i].val<<"\n";
 ct=1;
 j=1;
 for(i=a[1].D;i>=1;i--)
    {while(j<=n&&a[j].D==i)
          {pq.push(a[j].val);
        //  fout<<j<<" ";
           j++;
          }
     if(!pq.empty())
       {sol+=1LL*pq.top();
      // fout<<pq.top()<<" \n";
        pq.pop();
       }
    }
 fout<<sol<<" ";
}