Pagini recente » Cod sursa (job #339161) | Cod sursa (job #3209624) | Cod sursa (job #3287268) | Cod sursa (job #261224) | Cod sursa (job #3174320)
#include <fstream>
#include <queue>
#define fi first
#define sc second
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int inf = (1 << 30) - 1 + (1 << 30);
int n, x, l;
long long ans;
priority_queue<pair<int, int>> que;
int main()
{
in >> n >> x >> l;
for(int i=1; i<=n; i++) {
int d, a;
in >> d >> a;
int reps;
if(l) {
if(x - d >= 0)
reps = (x - d) / l + 1;
else reps = -inf;
}
else reps = inf;
que.push({-reps, a});
}
int timer = 0;
while(!que.empty()) {
if(timer < -que.top().fi) {
//out << que.top().fi << ' ' << que.top().sc << '\n';
ans += 1LL * que.top().sc;
timer++;
}
que.pop();
}
out << ans;
return 0;
}