Pagini recente » Borderou de evaluare (job #3327521) | Cod sursa (job #3338262) | Cod sursa (job #3342233) | Cod sursa (job #3351886) | Cod sursa (job #3332094)
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct cows
{
int dist,val;
};
cows v[100005];
bool CMP(cows a,cows b)
{
return a.dist>b.dist;
}
signed main()
{
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int n,dmax,add,maxm=0,sum=0;
cin>>n>>dmax>>add;
for(int i=0;i<n;i++)
{
cin>>v[i].dist>>v[i].val;
v[i].dist=(dmax-v[i].dist)/add+1;
maxm=max(maxm,v[i].dist);
}
sort(v,v+n,CMP);
priority_queue<int>pq;
int j=0;
for(int i=maxm;i>0;i--)
{
for(;j<n;j++)
{
if(v[j].dist==i)
{
pq.push(v[j].val);
}
else
break;
}
if(!pq.empty())
{
sum+=pq.top();
pq.pop();
}
}
cout<<sum;
return 0;
}