Pagini recente » Cod sursa (job #460152) | Cod sursa (job #1745590) | Cod sursa (job #3218353) | Cod sursa (job #2519961) | Cod sursa (job #2822313)
#include <fstream>
#include <queue>
#include <algorithm>
#define Nmax 100005
#include<iostream>
using namespace std;
priority_queue<int> Q;
struct Oaie
{
int la, ti;
bool operator < (const Oaie &o)
{
return ti < o.ti;
}
};
Oaie oi[Nmax];
int n, X, L, p, T;
long long sol = 0;
int main()
{
freopen("lupu.in", "r", stdin);
freopen("lupu.out", "w", stdout);
cin >> n >> X >> L;
for(int i = 1; i <= n; i++)
{
int dist;
cin >> dist >> oi[i].la;
oi[i].ti = (X - dist) / L;
}
sort(oi + 1, oi + n + 1);
p = n, T = oi[n].ti;
while(T >= 0)
{
while(p > 0 && oi[p].ti >= T)
{
Q.push(oi[p].la);
p--;
}
if(!Q.empty())
{
sol += Q.top();
Q.pop();
}
T--;
}
cout << sol;
return 0;
}