Pagini recente » Cod sursa (job #3185147) | Cod sursa (job #2167145) | Cod sursa (job #2500829) | Cod sursa (job #3148274) | Cod sursa (job #1549016)
#include <cstdio>
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
#include <algorithm>
#include <functional>
#include <string>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <bitset>
#include <stack>
#define MOD 1000000007
#define NMAX 100005
#define MMAX 100005
#define INF 100000000
#define mp make_pair
using namespace std;
FILE *fin = freopen("lupu.in", "r", stdin);
FILE *fout = freopen("lupu.out", "w", stdout);
typedef pair<int, int> pii;
vector<pii> v(NMAX);
int main() {
int n, i, j, x, l, d, a;
long long s, nr;
scanf("%d%d%d", &n, &x, &l);
for (i = 0; i < n; ++i) {
scanf("%d%d", &d, &a);
v[i].first = d;
v[i].second = a;
}
sort(v.begin(), v.begin()+n);
j = 0;
s = 0;
priority_queue<int> pq;
for (i = 0; i <= x; i += l) {
while (v[j].first <= i && j < n) {
pq.push(v[j].second);
++j;
}
if (!pq.empty()) {
nr = pq.top();
s += nr;
pq.pop();
}
}
printf("%lld", s);
return 0;
}