Pagini recente » Cod sursa (job #230148) | Cod sursa (job #2861392) | Cod sursa (job #807384) | Cod sursa (job #696559) | Cod sursa (job #3331990)
#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;
}oi[NMAX];
bool comp(oaie a, oaie b){
return a.d<b.d;
}
int main(){
fin>>n>>x>>l;
for(int i=1;i<=n;i++)
fin>>oi[i].d>>oi[i].b;
sort(oi+1, oi+n+1, comp);
int nivel=x/l+1;
for(int i=1;i<=n;i++){
int nivela=(x-oi[i].d)/l+1;
if(nivela<=0){
nivel=0;
break;
}
if(nivela<nivel){
for(;nivel>nivela&&!pq.empty();nivel--){
sum+=pq.top();
pq.pop();
}
}
pq.push(oi[i].b);
}
while(nivel){
sum+=pq.top();
pq.pop();
nivel--;
}
fout<<sum;
return 0;
}