Pagini recente » Cod sursa (job #1436967) | Cod sursa (job #1991960) | Cod sursa (job #1183596) | Cod sursa (job #1436648) | Cod sursa (job #3342438)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int NMAX = 1e6 + 5;
int n,x,dx,rasp;
struct oaie
{
int d,l;
bool operator < (const oaie &a) const
{
return l<a.l;
}
} oi[NMAX];
priority_queue<oaie> pq;
bool ord (const oaie &a, const oaie &b)
{
return a.d<b.d;
}
int32_t main()
{
fin>>n>>x>>dx;
int suma=0;
for(int i=0; i<n; i++)
{
fin>>oi[i].d>>oi[i].l;
if(oi[i].d <= x)
suma+=oi[i].l;
}
if(dx==0)
{
fout<<suma;
return 0;
}
sort(oi,oi+n,ord);
int lim = x%dx, i = 0;
while(lim<=x)
{
for(; i<n && oi[i].d <=lim; i++)
pq.push(oi[i]);
if(!pq.empty())
{
rasp+=pq.top().l;
pq.pop();
}
lim+=dx;
}
fout<<rasp;
return 0;
}