Pagini recente » Cod sursa (job #3312114) | Cod sursa (job #3331992) | Cod sursa (job #2030540) | Cod sursa (job #2003036) | Cod sursa (job #3331996)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int NMAX=1e5+1;
int n, x, l;
long long sum;
priority_queue <int> pq;
struct oaie{
int d, b;
};
vector <oaie> oi;
bool comp(oaie a, oaie b){
return a.d<b.d;
}
int main(){
fin>>n>>x>>l;
for(int i=1;i<=n;i++){
oaie a;
fin>>a.d;
fin>>a.b;
if(a.d<=x)
oi.push_back(a);
}
sort(oi.begin(), oi.end(), comp);
int nivel=x/l+1;
for(int i=0;i<oi.size();i++){
int nivela=(x-oi[i].d)/l+1;
if(nivela<nivel){
for(;nivel>nivela&&!pq.empty();nivel--){
sum+=pq.top();
pq.pop();
}
nivel=nivela;
}
pq.push(oi[i].b);
}
while(nivel&&!pq.empty()){
sum+=pq.top();
pq.pop();
nivel--;
}
fout<<sum;
return 0;
}