Pagini recente » Cod sursa (job #1680359) | Cod sursa (job #701818) | Cod sursa (job #601840) | Cod sursa (job #529039) | Cod sursa (job #3345333)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct oaie{
int etapa, lana;
};
int dp[100002];
oaie oi[100002];
int n, distmax, l;
long long ans=0;
int main(){
int i, x, y;
fin >> n >> distmax >> l;
for(i=1;i<=n;i++){
fin >> x >> y;
oi[i].etapa = (distmax - x) / l + 1;
oi[i].lana = y;
}
for(i=1;i<=n;i++){
if(oi[i].etapa > n)
ans += oi[i].lana;
else
dp[oi[i].etapa] = max(dp[oi[i].etapa], oi[i].lana);
}
priority_queue<int> pq;
for(i=n;i>0;i--){
pq.push(dp[i]);
ans += pq.top();
pq.pop();
}
fout << ans;
//for(i=1;i<=n;i++)
// fout << oi[i].etapa << endl;
}