Pagini recente » Cod sursa (job #445127) | Cod sursa (job #2257896) | Cod sursa (job #2518109) | Cod sursa (job #3220115) | Cod sursa (job #2819046)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
const int Nmax = 100005;
priority_queue<int> Q;
struct Oaie {
int lana, timp;
bool operator < (const Oaie &o) {
return timp < o.timp;
}
};
Oaie oi[Nmax];
int main() {
int n, X, L;
long long sol = 0;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
fin >> n >> X >> L;
for(int i = 1; i <= n; i++) {
int dist;
fin >> dist >> oi[i].lana;
oi[i].timp = (X - dist) / L;
}
sort(oi + 1, oi + n + 1);
int p = n, T = oi[n].timp;
while(T >= 0) {
while(p > 0 && oi[p].timp >= T) {
Q.push(oi[p].lana);
p--;
}
if(!Q.empty()) {
sol += Q.top();
Q.pop();
}
T--;
}
fout << sol;
return 0;
}