Pagini recente » Cod sursa (job #2622426) | Cod sursa (job #933594) | Cod sursa (job #1718632) | Cod sursa (job #1503160) | Cod sursa (job #1243243)
#include<fstream>
#include<algorithm>
#include<queue>
#define NMAX 100005
using namespace std;
long long d,a[NMAX],x;
priority_queue<long long>q;
long long n,l,dist,lg,i;
long long sum=0;
struct lup
{
long long val,ord;
}T[NMAX];
int cmp(lup r,lup p)
{
if (r.val<p.val) return 0;
return 1;
}
int main()
{
ifstream f("lupu.in");
ofstream g("lupu.out");
f>>n>>x>>l;
for (i=1;i<=n;++i)
{
f>>d>>T[i].ord;
if (d<=x && l>0) {T[i].val=(x-d)/l+1;}
}
sort(T+1,T+n+1,cmp);
i=1;
for (int k=T[i].val;k>0;k--)
{
while (i<n && T[i].val==k)
{
q.push(T[i].ord);
++i;
}
if (!q.empty()){sum+=q.top();q.pop();}
else if (i<n) k=T[i].val+1;
}
g<<sum<<"\n";
return 0;
}