#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> iint;
typedef pair<ll,ll> llll;
#define ALL(x) (x).begin(),(x).end()
const ll zero = 0;
const ll one = 1;
const ll INF = 9223372036854775807; //10^18
const int inINF = 2147483647; //10^9
const ll MOD = 1000000007; //10^9+7
const ll MOD2 = 998244353;
void Yes() {printf("Yes\n");}
void No() {printf("No\n");}
void YES() {printf("YES\n");}
void NO() {printf("NO\n");}

int main(){
    int N;
    double D, H;
    cin >> N;
    vector<double> d(N), h(N);
    cin >> D >> H;
    for (int i = 0; i < N; i++) {
        cin >> d[i] >> h[i];
    }
    double ans = 0.0;
    for (int i = 0; i < N; i++) {
        double y = (h[i]*D - H*d[i]) / (H - h[i]);
        double x = h[i]*y / (y + d[i]);
        ans = max(ans, x);
    }
    printf("%32.18f\n", ans);

}
#include <bits/stdc++.h>
using namespace std;

int main(){
  int n, d, h;
  double max_hi = 0;
  cin >> n >> d >> h;
  vector<vector<int>> object(n, vector<int>(2));
  for (int i = 0; i < n; i++)
    cin >> object.at(i).at(0) >> object.at(i).at(1);
  for (int i = 0; i < n; i++){
    double tmp;
    tmp = object.at(i).at(1) - object.at(i).at(0) * ((double) h - object.at(i).at(1)) / (d - object.at(i).at(0));
    if (tmp > max_hi)
      max_hi = tmp;
  }
  cout << fixed << setprecision(16);
  cout << max_hi << endl;
}