Pagini recente » Cod sursa (job #149190) | Cod sursa (job #1492432) | Cod sursa (job #2650882) | Cod sursa (job #269101) | Cod sursa (job #2407506)
#include <fstream>
#include <set>
#include <algorithm>
using namespace std;
long long sol;
int N, X, L, k, i, d, a;
multiset<int> S;
pair<int, int> t[100010];
int main () {
ifstream fin ("lupu.in");
ofstream fout("lupu.out");
fin>>N>>X>>L;
for (i=1;i<=N;i++) {
fin>>d>>a;
if (d <= X) {
t[++k].first = 1 + (X-d)/L;
t[k].second = a;
}
}
sort(t+1, t+k+1);
for (i=t[k].first;i>=1;i--) {
while (k >= 1 && t[k].first == i) {
S.insert(t[k].second);
k--;
}
if (S.size()) {
sol += *S.rbegin();
S.erase(--S.end());
}
}
fout<<sol;
return 0;
}