Pagini recente » Cod sursa (job #2556973) | Cod sursa (job #2529573) | Cod sursa (job #3162333) | Cod sursa (job #934242) | Cod sursa (job #2131481)
#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<<" ";
}