Pagini recente » Cod sursa (job #636959) | Cod sursa (job #945687) | Cod sursa (job #2162516) | Cod sursa (job #1813708) | Cod sursa (job #3003794)
#include <fstream>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int N, X, L;
priority_queue<int, vector<int>, greater<int>> pq;
int main()
{
cin>>N>>X>>L;
vector<vector<int>> buckets(X/L+1);
for(int i=0;i<N;i++){
int dist, lana;
cin>>dist>>lana;
if(dist > X){
continue;
}
buckets[(X-dist)/L].push_back(lana);
}
for(int i=0;i<buckets.size();i++){
for(auto it: buckets[i]){
pq.push(it);
}
while(pq.size() > i+1){
pq.pop();
}
}
int sum =0;
while(pq.size() > 0){
sum += pq.top();
pq.pop();
}
cout<<endl<<sum;
return 0;
}