Pagini recente » Cod sursa (job #679829) | Cod sursa (job #787917) | Cod sursa (job #409590) | Cod sursa (job #2294211) | Cod sursa (job #2325229)
#include <bits/stdc++.h>
#define NMAX 200003
using namespace std;
ifstream fin ("lupu.in");
ofstream fout ("lupu.out");
int n, L, X, nr;
long long sum;
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 ind = 1, dist = X % L; dist <= X; dist += L){
for (; V [ind].dist <= dist && ind <= n; ind ++)
pq.push (V [ind]);
if (!pq.empty ())
sum += pq.top ().lana, pq.pop ();
}
fout << sum << '\n';
return 0;
}