Pagini recente » Cod sursa (job #2250304) | Cod sursa (job #1564891) | Cod sursa (job #82222) | Cod sursa (job #1835903) | Cod sursa (job #2818286)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<int> Q;
struct Oaie
{
int l,t;
bool operator < (const Oaie &o)
{
return t < o.t;
}
};
Oaie oi[100005];
int main()
{
int n,X,L,i;
long long sol=0;
fin >>n>>X>>L;
for(i=1;i<=n;i++)
{
int dist;
fin >>dist>>oi[i].l;
oi[i].t=(X-dist)/L;
}
sort(oi+1,oi+n+1);
int p=n,T=oi[n].t;
while(T>=0)
{
while(p>0 && oi[p].t>=T)
{
Q.push(oi[p].l);
p--;
}
if(!Q.empty())
{
sol+=Q.top();
Q.pop();
}
T--;
}
fout << sol;
return 0;
}