Pagini recente » Cod sursa (job #2566797) | Cod sursa (job #1763826) | Cod sursa (job #967087) | Cod sursa (job #1070394) | Cod sursa (job #3308833)
#include <bits/stdc++.h>
#define NMAX 100100
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct Poz{
int d, a;
bool operator<(Poz b)const{
if(d!=b.d)
return d<b.d;
return a<b.a;
}
} v[NMAX];
int n, d, x, l,i,j;
priority_queue<int>q;
long long ans;
int main()
{
fin>>n>>x>>l;
for( i=1;i<=n;++i)
{
fin>>d>>v[i].a;
v[i].d=(x-d)/l;// lvl
}
sort(v+1, v+1+n);
// for(int i=1;i<=n;++i)
// cout<<v[i].d<<" "<<v[i].a<<'\n';
j=n;
for(int i=x/l;i>=0 && j<=n;--i)
{
while(j>=1 && v[j].d>=i)
{
q.push(v[j].a);
--j;
}
if(!q.empty())
{
//cout<<q.top()<<" ";
ans+=q.top();
q.pop();
}
}
fout<<ans;
return 0;
}