#include<bits/stdc++.h>
using namespace std;
using ll=long long;

int main() {
  int n; int D; int H;
  cin >> n >> D >> H;
  vector<int> d(n), h(n);
  for(int i=0; i<n; ++i) cin >> d[i] >> h[i];

  double ans = 0;
  for(int i=0; i<n; ++i) {
    double b = double(D * h[i] - d[i] * H) / (D - d[i]);
    ans = max(ans, b);
  }
  printf("%.10lf\n", ans);
}

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <string>
#include <stack>
#include <iomanip>
#include <climits>
#define MOD 1000000007
#define ll long long int
#include <queue>
using namespace std;

vector <bool> is_prime(10007,true);

void seive()
{
    for (int i=2; i<=10007; i++)
        {
            if (is_prime[i]==true)
                {
                    for (int num=2*i; num<=10007; num+=i)
                        {
                            is_prime[num]=false;
                        }
                }
        }
}

ll GCD(ll x,ll y)
{
    ll mx=max(x,y),mn=min(x,y);

    while(mn!=0)
        {
            ll temp=mn;
            mn=mx%mn;
            mx=temp;
        }

    return mx;
}

vector <vector <ll>> vis;
vector <vector <ll>> a;
vector <vector <vector <char>>> dis;
//vector <ll> vis,counttime;


/*void dfs(ll v)
{
    vis[v]=1;

    for (int child:a[v])
        {
            if (vis[child]==0)
                dfs(child);

        }

}
*/
ll dx[4]= {1,0,-1,0};
ll dy[4]= {0,-1,0,1};
char dir[4]= {'D','L','U','R'};
ll n,m;
bool isValid(ll x,ll y)
{
    if (x<1||x>n||y<1||y>m)
        return false;

    if (vis[x][y]==1)
        return false;

    return true;
}
vector <pair<ll,ll>> ans_vec;
void DFS_grid(ll x,ll y)

{
    // cout<<x<<" "<<y<<" "<<vis[x][y]<<endl;
    vis[x][y]=1;
    ans_vec.push_back({x,y});

    for (int i=0; i<4; i++)
        {
            ll newX=x+dx[i],newY=y+dy[i];

            if (isValid(newX,newY))
                {
                    DFS_grid(newX,newY);
                }
        }


}


vector <vector<ll>> bin;
void binary_conv(ll x,ll ind)
{
    vector <ll> a(31,0);
    int k=-1;
    ll xs=x,val=1;
    for (int i=1; i<=x; i*=2)
        {
            k++;
            val=i;

        }
    cout<<val<<" "<<k<<endl;

    for (ll i=val; i>=1; i/=2)
        {
            if (i<=x)
                {
                    x-=i;
                    a[30-k]=1;

                }
            k--;
        }

    bin[ind]=a;

}

ll binpow(ll a,ll b)

{
    if (b==0)
        return 1;
    ll res=binpow(a,b/2);
    if (b%2==0)
        {

            return (res*res)%1000000007;
        }
    else return (a*res*res)%1000000007;

}

pair<ll,string> func(string s,char a[],ll n,ll k)
{
    ll ans =0;




    for (int i=1; i<n; i++)
        {
            if (i<n-1&&s[i]==s[i-1]&&s[i]==s[i+1])
                {
                    s[i]=a[(s[i]-'A'+1)%k];
                    ans++;
                }

            else if (s[i]==s[i-1])
                {
                    ll mid=(s[i-1]-'A'+1)%k;
                    s[i]=a[mid];
                    if(k>2)
                        {
                            if (i<n-1&&s[i]==s[i+1])
                                {
                                    s[i]=a[(mid+1)%k];


                                }
                        }



                    ans++;
                }



        }

    return {ans,s};

}


bool is_good(ll k,ll n,ll a,ll b,ll ele)
{
    if (ele<=n&&k-ele*a>0)
        {
            if ((k-ele*a)/b+ele>n||(k-ele*a)/b+ele==n&&(k-ele*a)%b!=0)
                return true;
        }

    return false;
}


ll mod(ll x,ll y)

{
    return max(x-y,y-x);

}
int main()


{



    ll t=1;

    //cin>>t;






    while(t--)
        {

        ll n;
        double d,h;
        cin>>n>>d>>h;
cout<<setprecision(20);
        double mx=d,my=0,m=h/d;
        while(n--)
        {
            double x,y;
            cin>>x>>y;

            if ((y-my)/x>m)
            {


               my+=((y-my)/x-m)/(1/x-1/d);
                m=(h-my)/d;
            }



        }

        //cout<<mx<<my<<endl;


//cout<<ans<<endl;

            cout<<my<<endl;



        }



    return 0;
}
