Pagini recente » Cod sursa (job #1263675) | Cod sursa (job #1337974) | Cod sursa (job #502061) | Cod sursa (job #1887389) | Cod sursa (job #2287432)
#include <bits/stdc++.h>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
int main() {
ios::sync_with_stdio(false); in.tie(0); out.tie(0);
int n, x ,l; in >> n >> x >> l;
vector< pair< int, int > > v(n);
for(int i = 0; i < n; ++i) {
in >> v[i].first >> v[i].second;
}
sort(v.begin(), v.end());
int idx = 0, r = x % l;
multiset< int > mSet;
for(int i = 0; i < n; ++i) {
if(v[i].first <= r) {
mSet.insert(-v[i].second);
idx = i;
} else {
break;
}
}
r = l;
int ans = 0;
if(!mSet.empty()) {
ans += (-(*mSet.begin()));
mSet.erase(mSet.begin());
}
for(int i = idx; i < n; ++i) {
if(v[i].first < r) {
mSet.insert(-v[i].second);
} else {
if(!mSet.empty()) {
ans += (-(*mSet.begin()));
mSet.erase(mSet.begin());
r += l;
--i;
} else {
r = (v[i].first / l) * l;
}
}
}
out << ans << "\n";
in.close(); out.close();
return 0;
}