Pagini recente » Cod sursa (job #419271) | Cod sursa (job #2601784) | Cod sursa (job #923385) | Cod sursa (job #2574815) | Cod sursa (job #2329324)
#include <bits/stdc++.h>
const int MV = 1e5 + 5 ;
struct DC {
int dist, lana ;
inline bool operator < (const DC &k) const {
return k.dist > dist ;
}
};
DC v[MV] ;
int total ;
std::priority_queue <int> pq ;
int main() {
freopen("lupu.in", "r", stdin) ;
freopen("lupu.out", "w", stdout) ;
int n, distmax, l, i ;
scanf("%d %d %d", &n, &distmax , &l) ;
for (i = 1 ; i <= n ; ++ i) {
scanf("%d %d", &v[i].dist, &v[i].lana) ;
}
std::sort(v + 1, v + 1 + n) ;
for (int intr = distmax % l, i = 1 ; intr <= distmax; intr += l) {
for (; i <= n && v[i].dist <= intr ; ++ i) {
pq.push(v[i].lana) ;
}
if (!pq.empty()) {
total += pq.top() ;
pq.pop() ;
}
}
printf("%d", total) ;
return 0 ; }