Pagini recente » Cod sursa (job #2355413) | Cod sursa (job #2267321) | Cod sursa (job #1105285) | Cod sursa (job #2270008) | Cod sursa (job #1258568)
#include<iostream>
#include<fstream>
#include<vector>
#include<map>
#include<queue>
using namespace std;
int main(){
ifstream f("lupu.in");
ofstream g("lupu.out");
vector <int> t[100001];
vector <int> oi(100001, 0);
priority_queue <int> q;
int n,x,l,i=0;
f >> n >> x >> l;
int max = 0;
for (i = 0; i <n; i++){
int a, b;
f >> a >> b;
int timp = (x - a) / l;
if (timp >= 0) t[timp].push_back(i);
oi[i] = b;
if (timp>max) max = timp;
}
long long lupu = 0;
for (i = max; i >= 0; i--){
for (int j = 0; j < t[i].size(); j++)
q.push(oi[t[i][j]]);
if (!q.empty()){
lupu += q.top();
q.pop();
}
}
g << lupu;
g.close();
f.close();
//cin.get();
return 0;
}