Pagini recente » Cod sursa (job #1420664) | Cod sursa (job #970521) | Cod sursa (job #771533) | Cod sursa (job #3249318) | Cod sursa (job #2361661)
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include<set>
#define pii pair<int,int>
#define x first
#define y second
#define ll long long
using namespace std;
const ll inf=1e9;
pair<int,int> a[100010];
set<pii>S;
int n,x,l;
int rs;
int main() {
freopen ("lupu.in", "r", stdin);
freopen ("lupu.out", "w", stdout);
scanf("%d %d %d", &n, &x, &l);
for (int i=1; i<=n; ++i) {
int x,y; scanf("%d %d", &a[i].y, &a[i].x);
S.insert({0,i});
}
sort(a+1,a+1+n, greater<pair<int,int>>());
for (int i=1; i<=n; ++i) {
pii t=a[i];
ll r=(x-t.y)/l+1;
if (r<=0) continue;
auto it=S.upper_bound({0,r});
if (it==S.begin()) continue;
else --it;
if (it->x==inf) continue;
ll y=it->y;
rs+=t.x;
S.erase(it);
}
cout<<rs;
return 0;
}