Pagini recente » Cod sursa (job #1811644) | Cod sursa (job #1127736) | Cod sursa (job #2225004) | Cod sursa (job #41364) | Cod sursa (job #976470)
Cod sursa(job #976470)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
const int MAX_N = 100002;
int N, X, L;
vector < int > v[MAX_N];
priority_queue < int > H;
long long int S;
int main() {
ifstream f("lupu.in");
ofstream g("lupu.out");
f >> N >> X >> L;
int Max = 0;
for(int i = 1, D, A; i <= N; ++i) {
f >> D >> A;
int t = (X - D) / L + 1;
if(t < 0)
continue;
v[t].push_back(A);
if(t > Max)
Max = t;
}
for(int i = Max; i >= 1; --i) {
for(size_t j = 0; j < v[i].size(); ++j)
H.push(v[i][j]);
if(!H.empty())
S += H.top(), H.pop();
}
g << S << '\n';
f.close();
g.close();
return 0;
}