Pagini recente » Istoria paginii runda/leulloe2 | Cod sursa (job #2885854) | Cod sursa (job #2350007) | Cod sursa (job #2387914) | Cod sursa (job #2032868)
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#define DIM 100002
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
long long n;
long long s, x, l, val, maxim, curent, scop, cnt;
struct oaie
{
long long d, lana;
}oi[DIM];
bool cmp(oaie a, oaie b)
{
if(a.d == b.d)
return a.lana > b.lana;
return a.d < b.d;
}
priority_queue <long long> h;
int main()
{
f>>n>>x>>l;
for(int i = 1; i <= n; ++ i)
{
f>>oi[i].d>>oi[i].lana;
if(l != 0)
val = (x - oi[i].d) / l + 1;
else
val = oi[i].d;
if(maxim < val)
maxim = val;
if(val > 0)
{
oi[i].d = val;
}
}
sort(oi + 1, oi + n + 1, cmp);
cnt = n;
for(long long i = maxim; i >= 1; -- i)
{
while(oi[cnt].d == i)
{
h.push(oi[cnt].lana);
-- cnt;
}
if(!h.empty())
{
s += h.top();
h.pop();
}
}
g<<s;
return 0;
}