Pagini recente » Cod sursa (job #561724) | Cod sursa (job #815193) | Cod sursa (job #1170094) | Cod sursa (job #2727563) | Cod sursa (job #3342411)
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("lupu.in", "r", stdin);
freopen("lupu.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
int n;
long long x, l;
cin >> n >> x >> l;
// d + t * l <= x
//==> t <= (x - d) / l
vector<pair<long long,long long>> sheep;
for(int i = 0; i < n; ++i)
{
long long d, a;
cin >> d >> a;
if(d > x)
continue;
long long t;
if(l == 0)
t = LLONG_MAX;
else
t = (x - d) / l;
if(t >= 0)
sheep.push_back(make_pair(t, a));
}
sort(sheep.begin(), sheep.end());
priority_queue<long long, vector<long long>, greater<long long>> pq;
for(auto &s : sheep)
{
long long deadline = s.first;
long long lana = s.second;
pq.push(lana);
if((long long)pq.size() > deadline + 1)
pq.pop();
}
long long ans = 0;
while(!pq.empty())
{
ans += pq.top();
pq.pop();
}
cout << ans;
return 0;
}