Pagini recente » Cod sursa (job #2854408) | Cod sursa (job #1888943) | Cod sursa (job #1371097) | Cod sursa (job #2029024) | Cod sursa (job #1635895)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
const int NMAX=100005;
struct cmp{
inline bool operator ()(int x,int y)
{
return x<=y;
}
};
priority_queue <int,vector <int>,cmp > Q;
vector <int> v[NMAX];
int main()
{
int n,x,d;
f>>n>>x>>d;
int mx=0,ln,tmp;
for(int i=1;i<=n;i++)
{
f>>tmp>>ln;
if(x>=tmp)
{
tmp=(x-tmp)/d;
v[tmp].push_back(ln);
mx=max(mx,tmp);
}
}
long long sol=0;
for(int i=mx;i>=0;i--)
{
for(int j=0;j<v[i].size();j++)
Q.push(v[i][j]);
if(!Q.empty())
{
sol+=Q.top();
Q.pop();
}
}
g<<sol<<"\n";
return 0;
}