Pagini recente » Cod sursa (job #2527305) | Cod sursa (job #3165766) | Cod sursa (job #3222780) | Cod sursa (job #2320422) | Cod sursa (job #3227132)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("lupu.in");
ofstream g ("lupu.out");
const int Vmax = 100001;
struct oaie{
long long dist, val;
}oi[Vmax];
long long n, distlup, adaos, s;
priority_queue<long long> Q;
bool cmp (const oaie &a, const oaie &b){
return (a.dist < b.dist);
}
int main(){
f >> n >> distlup >> adaos;
for(int i = 1; i <= n; ++i){
int dist, val;
f >> dist >> val;
oi[i].dist = (distlup - dist) / adaos;
oi[i].val = val;
}
sort(oi + 1, oi + n + 1, cmp);
long long a = oi[n].dist, cnt = n;
while(a >=0){
while(cnt && a <= oi[cnt].dist)
Q.push(oi[cnt--].val);
if(!Q.empty()){
s += Q.top();
Q.pop();
}
a--;
}
g << s;
return 0;
}