Pagini recente » Cod sursa (job #2253017) | Cod sursa (job #333585) | Cod sursa (job #749635) | Cod sursa (job #2400773) | Cod sursa (job #2913710)
#include <fstream>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int i, j, n, m, k, minn, maxim, minim, aux, x, l, distanta, cantitate, t;
long long sol;
vector <pair<int, int>> v;
multiset<int> s;
multiset<int> ::iterator it;
int main() {
fin>>n>>x>>l;
for(i=1;i<=n;i++){
fin>>distanta>>cantitate;
v.push_back({(x-distanta)/l, cantitate});
}
sort(v.begin(), v.end());
j=v.size()-1;
for(t=v[v.size()-1].first; t>=0 ; t--){
while(j>=0 && v[j].first>=t){
s.insert(v[j].second);
j--;
}
if(!s.empty()){
it=s.end();
it--;
sol+=*it;
s.erase(it);
}
}
fout<<sol;
}