#pragma GCC optimize("O3")
#pragma GCC target("avx")
// #define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
// #include <atcoder/all>
using namespace std;
// using namespace atcoder;
using ll = long long;
using P = pair<int, int>;
using Graph = vector<vector<int>>;
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define out(x) cout << x << endl
#define out2(x, y) cout << x << " " << y << " " << endl
const ll INF = 1LL << 60;
const int BIG = 1e9;
const int LN = 1000000000;
vector<char> alp = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
                    'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
                    's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

int main() {
    cout << fixed << setprecision(15);

    int n, d, h;
    cin >> n >> d >> h;
    double maxh = -1;
    rep(i, n) {
        int di, hi;
        double tmp;
        cin >> di >> hi;
        tmp = h - (double)d * (h - hi) / (d - di);
        if (tmp > maxh) maxh = tmp;
    }
    if (maxh < 0) maxh = 0;
    cout << maxh << endl;
}
#include<bits/stdc++.h>
using namespace std;
#define int long double

void Malena(){
	int n,d,h;cin>>n>>d>>h;
	vector<vector<int>>bars(n,vector<int>(2));
	for(int i=0;i<n;++i){
		cin>>bars[i][0]>>bars[i][1];
	}
	int low=0,hi=1001;
	int eps=1e-6;
	while(abs(hi-low)>eps){
		int mi=low+(hi-low)/2;
		int found=0;
		for(int i=0;i<n;++i){
			if(bars[i][1] - ( ((h-mi)/d)*bars[i][0])-mi > 0){
				found++;
			}
		}
		(found?low:hi)=mi;
	}
	cout<<setprecision(12)<<low<<'\n';
}

signed main()
{
	#ifndef ONLINE_JUDGE
		freopen("input.txt","r",stdin);
		freopen("output.txt","w",stdout);
	#endif
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int t;
	t=1;
	//cin>>t;
	while(t--){
		Malena();
	}
	return 0;
}
