Pagini recente » Cod sursa (job #2526515) | Cod sursa (job #2270756) | Cod sursa (job #2542616) | Cod sursa (job #2571257) | Cod sursa (job #3252851)
#include <bits/stdc++.h>
#define MAX 100005
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n, d, i, x, y, l, maxi, s;
queue<int>q[MAX];
priority_queue<pair<int, int>>pq;
/// lupul urias si rau infoarena :)
int main()
{
fin>>n>>d>>l;
for (i=1; i<=n; i++) {
fin>>x>>y;
if (d>=x) {q[(d-x)/l+1].push(y);
maxi=max(maxi, (d-x)/l+1);}
}
for (i=maxi; i>=1; i--) {
while (!q[i].empty()) {pq.push({q[i].front(), i}); q[i].pop();}
if (!pq.empty()) {s+=pq.top().first; pq.pop();}
}
fout<<s;
return 0;
}