Pagini recente » Cod sursa (job #2225776) | Cod sursa (job #2550065) | Cod sursa (job #3241309) | Cod sursa (job #2925374) | Cod sursa (job #3280956)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
struct elem{
int t, x;
};
bool comp(elem a, elem b){
return a.t > b.t;
}
vector <elem> v;
int main(){
int n, lup, l, i, j, d, x;
long long r;
ifstream fin( "lupu.in" );
ofstream fout( "lupu.out" );
fin >> n >> lup >> l;
for( i = 0; i < n; i++ ){
fin >> d >> x;
if( d <= lup ){
v.push_back({ ( lup - d ) / l, x });
}
}
sort( v.begin(), v.end(), comp );
priority_queue <int> q;
r = i = 0;
while( i < v.size() ){
j = i;
while( j < v.size() && v[j].t == v[i].t ){
//cout << v[j].t << ' ' << v[j].x << '\n';
q.push( v[j].x );
j++;
}
r += q.top();
q.pop();
i = j;
}
fout << r;
return 0;
}