Pagini recente » Cod sursa (job #620946) | Cod sursa (job #2023635) | Cod sursa (job #298932) | Cod sursa (job #228938) | Cod sursa (job #2671684)
#include <bits/stdc++.h>
#define NMAX 200003
using namespace std;
ifstream fin ("lupu.in");
ofstream fout ("lupu.out");
int n, L, X;
long long ans;
struct Oaie
{
unsigned int dist, lana;
bool operator() (const Oaie &A, const Oaie &B)
{
return A.lana < B.lana;
}
} v [NMAX];
priority_queue <Oaie, vector <Oaie>, Oaie> pq;
bool cmp (Oaie A, Oaie B)
{
return A.dist < B.dist;
}
int main ()
{
fin >> n >> X >> L;
for (int i = 1; i <= n; i ++)
fin >> v [i].dist >> v [i].lana;
sort (v + 1, v + n + 1, cmp);
for (int I = 1, D = X % L; D <= X; D += L)
{
for (; v [I].dist <= D && I <= n; I ++)
pq.push (v [I]);
if (!pq.empty ())
{
ans += pq.top ().lana;
pq.pop ();
}
}
fout << ans << '\n';
return 0;
}