Pagini recente » Cod sursa (job #2416446) | Cod sursa (job #1303386) | Cod sursa (job #1568029) | Cod sursa (job #970280) | Cod sursa (job #2466495)
#include <bits/stdc++.h>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
struct nod {
int dist, val;
};
int N, X, L;
long long sol;
nod a[100003];
priority_queue<int> Q;
bool cmp(nod a, nod b) {
return a.dist > b.dist;
}
int main()
{
f >> N >> X >> L;
for(int i = 1; i <= N; i++) {
f >> a[i].dist >> a[i].val;
if(X < a[i].dist) a[i].dist = 0;
else a[i].dist = ((X - a[i].dist) / L) + 1;
}
sort(a + 1, a + N + 1, cmp);
int k = a[1].dist;
for(int i = 1; i <= N && k; k--) {
while(k == a[i].dist && i <= N) {
Q.push(a[i].val);
i++;
}
if(!Q.empty()) sol += Q.top(), Q.pop();
else k = a[i].dist + 1;
}
g << sol << '\n';
return 0;
}