Pagini recente » Cod sursa (job #1920231) | Cod sursa (job #1364780) | Cod sursa (job #1354780) | Cod sursa (job #1252376) | Cod sursa (job #2464652)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n, x, l;
ll ans;
vector < pair <int, int > > v;
multiset <ll> myset;
multiset <ll> :: iterator it;
int main()
{
fin >> n >> x >> l;
for(int i = 1; i <= n; i++)
{
int a, b;
fin >> a >> b;
int times;
if(x < a) times = 0;
else
times = (x-a)/l+1;
if(times)
v.push_back(make_pair(times, b));
}
sort(v.begin(), v.end());
for(int i = n-1; i >= 0; i--)
{
int time, cost;
time = v[i].first;
cost = v[i].second;
myset.insert((ll)cost);
if(i==0 || v[i-1].first < time)
{
it = myset.end();
it--;
ans += *it;
myset.erase(it);
}
}
fout << ans;
return 0;
}