Pagini recente » Cod sursa (job #47223) | Cod sursa (job #3274032) | Cod sursa (job #77686) | Cod sursa (job #950071) | Cod sursa (job #3240924)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
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;
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;
}