Pagini recente » Cod sursa (job #2999617) | Cod sursa (job #51531) | Cod sursa (job #2045059) | Cod sursa (job #2760716) | Cod sursa (job #998635)
Cod sursa(job #998635)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
const int NMAX = 100010;
priority_queue<long long> Q;
long long N, X, L, Ans, Max;
pair<long long, long long> V[NMAX];
int main()
{
ifstream fin("lupu.in");
ofstream fout("lupu.out");
fin >> N >> X >> L;
for(int i = 1; i <= N; ++ i)
{
fin >> V[i].first >> V[i].second;
V[i].first = (X - V[i].first) / L;
Max = max(Max, V[i].first);
}
sort(V + 1, V + N + 1);
for(int i = N, j = Max; j >= 0; -- j)
{
while(i > 0 && V[i].first == j) Q.push(V[i].second), i --;
if(!Q.empty()) Ans += Q.top(), Q.pop();
}
fout << Ans;
return 0;
}