Pagini recente » Cod sursa (job #2883905) | Clasamentul arhivei Infoarena Monthly | Cod sursa (job #2351800) | Cod sursa (job #3284135) | Cod sursa (job #1974349)
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
#define f first
#define s second
const int N=1e5+5;
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
int n, d, l;
pair<int,int> v[N];
priority_queue<int> pq;
int main(){
long long ans=0;
in>>n>>d>>l;
for(int i=1; i<=n; i++)in>>v[i].f>>v[i].s;
sort(v+1, v+n+1);
int gr=0, i=1;
while(i<=n&&v[i].f<=d){
while(i<=n&&v[i].f<=l*gr)pq.push(v[i].s),i++;
if(!pq.empty())ans+=pq.top(),pq.pop();
gr++;
}
out<<ans;
return 0;
}