#include <iostream>
#include <algorithm>
#include <cmath>
#include <stdio.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<n;i++)
#define FOR(i,n) for(int i=0;i<n;i++)
typedef long long ll;
const int MAXN = 2e5;

int x[MAXN], y[MAXN];
int main() {
//  freopen("in", "r", stdin);
//  freopen("out", "w", stdout);
    int n, ans=0;
    scanf("%d", &n);
    FOR(i,n)
        scanf("%d%d", &x[i], &y[i]);
    rep(i,0,n) rep(j,i+1,n)
        if(abs(y[j]-y[i])<=abs(x[j]-x[i])) ans++;
    printf("%d", ans);
    return 0;
}

#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <algorithm>
#include <numeric>
#include <utility>
#include <random>
#include <chrono>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
//const int mod = 1e9+7;
const int MAXN = 110;
double d[MAXN], h[MAXN];
int N;
double D, H;

inline void quickread() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
}

double solve(int idx) {
    if(d[idx] == D) {
        return H;
    }
    return ((H + h[idx])*(D-d[idx]) + h[idx]*d[idx] - H*D)/(D - d[idx]);
}

int main() {
    quickread();
    cin >> N >> D >> H;
    for (int i = 0; i < N; i++) {
        cin >> d[i] >> h[i];
    }
    double res = 0;
    for (int i = 0; i < N; i++) {
        res = max(solve(i), res);
    }
    cout << fixed << setprecision(6) << res << endl;
    return 0;
}
