Pagini recente » Cod sursa (job #1827952) | Cod sursa (job #3157021) | Cod sursa (job #1980378) | Cod sursa (job #3177205) | Cod sursa (job #3189520)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
vector<int> v[100001];
int n, l, x;
int main()
{
cin >> n >> x >> l;
for ( int i = 1; i <= n ; i ++ )
{
int dist, val;
cin >> dist >> val ;
if ( dist > x )
continue ;
int c = x - dist ;
int ind = c / l + 1;
if (ind > n )
ind = n ;
v[ind].push_back(val);
}
long long sum = 0 ;
priority_queue<int> pq ;
for ( int j = n ; j >= 1; j -- )
{
for ( int i = 0 ; i < v[j].size(); i ++ )
{
pq.push(v[j][i]);
}
if(!pq.empty())
{
sum += pq.top();
pq.pop();
}
}
cout << sum << '\n';
return 0;
}