Pagini recente » Cod sursa (job #2373377) | Cod sursa (job #673264) | Cod sursa (job #3269990) | Cod sursa (job #2162049) | Cod sursa (job #2515120)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
long long n, x, k, i, sol, d, a, Max, turn;
vector <int> L[100010];
priority_queue <int> q;
ifstream fin ("lupu.in");
ofstream fout ("lupu.out");
int main () {
fin>>n>>x>>k;
for (i=1;i<=n;i++) {
fin>>d>>a;
if (d<=x) {
L[(x-d)/k+1].push_back(a);
Max=max(Max,(x-d)/k+1);
}
}
for (turn=Max;turn>=1;turn--) {
for (i=0;i<L[turn].size();i++) {
q.push(L[turn][i]);
}
if (!q.empty()) {
sol+=q.top();
q.pop();
}
}
fout<<sol;
return 0;
}