#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define V vector
#define pb push_back
#define eb emplace_back
#define lb lower_bound
#define ub upper_bound
#define mp make_pair
#define rep(i, n) for (int i = 0; i < (n); i++)
#define all(v) v.begin(), v.end()
#define allr(v) v.rbegin(), v.rend()
#define sz(x) int(x.size())
#define pcnt __builtin_popcountll
template <typename T> bool chmin(T &a, const T &b) {if(a > b){a = b; return true;} return false;}
template <typename T> bool chmax(T &a, const T &b) {if(a < b){a = b; return true;} return false;}
template <typename T> void print(T a) {cout << a << ' ';}
template <typename T> void printe(T a) {cout << a << endl;}
template <typename T> void printv(T a) {rep(i, sz(a))print(a[i]); cout<<endl;}
template <typename T> void printp(pair<T, T> a) {print(a.first); cout<<a.second<<endl;}
template <typename A, size_t N, typename T> void Fill (A (&array)[N], const T & val) {fill ((T*)array, (T*)(array+N), val);}
template <typename T> using vc = vector<T>;
template <typename T> using vv = vc<vc<T>>;
template <typename T> using vvv = vc<vv<T>>;
using ll = long long;
using P = pair<int, int>;
using Pl = pair<ll, ll>;
using vi = vc<int>;
using vvi = vv<int>;
using vl = vc<ll>;
using vvl = vv<ll>;
vi di = {-1, 1,  0, 0, -1, -1,  1, 1};
vi dj = { 0, 0, -1, 1, -1,  1, -1, 1};

int main () {
    int n, D, H; cin >> n >> D >> H;
    double ans = 0;
    rep(i, n) {
        int d, h; cin >> d >> h;
        chmax(ans, (double) (D*h - d*H) / (D - d));
    }
    printf("%.10lf\n", ans);
    return 0;
}
#include <bits/stdc++.h>
#define REP(i, n) for(int i = 0; i < n; i++)
#define REPR(i, n) for(int i = n; i >= 0; i--)
#define INF 2e9
using namespace std;

int main(){
  int n,D,H,j;
  cin >> n >> D >> H;
  vector<int> d(n);
  vector<int> h(n);
  for(int i=0;i<n;i++) cin >> d.at(i) >> h.at(i);
  
  double min;
  vector<double> tan(n);
  for(int i=0;i<n;i++){
    tan.at(i) = (double)(H-h.at(i))/(D-d.at(i));
    if(i==0) min = tan.at(0);
    else if(tan.at(i)<min){
      min = tan.at(i);
      j = i;
    }
  }
  
  double answer;
  answer = (double)D*tan.at(j);
  if(tan.at(j)>=(double)H/D) cout << 0.00 << endl;
  
  else cout << H-answer << endl; 
  
  
}