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

//a枚ある金貨がn回で100枚になって終わる確率
long double prob(int n, int a, int b, int c){
	int u = 100 - a;
	if(u > n) return(0.0);
	if(n - u > (99-b) + (99-c)) return(0.0);

	long double p = 1.0;
	for(int i=0; i<u; i++){ p *= ((long double)(a+i)/(long double)(a+b+c+i)); }
	long double ret = 0.0;
	for(int v = 0; v<=n-u; v++){
		int w = n - u - v;
		long double s = 1.0;
		if(v+b > 99 || w+c > 99) continue;
		for(int j=0; j<v; j++){ s *= ((long double)(b+j)/(long double)(a+b+c+u+j)); }
		for(int j=0; j<w; j++){ s *= ((long double)(c+j)/(long double)(a+b+c+u+v+j)); }
		long double h = 1.0;
		for(int j=v; j>=1; j--){ h *= ((long double)(u-1+j)/(long double)j); }
		for(int j=w; j>=1; j--){ h *= ((long double)(u-1+v+j)/(long double)j); }
		ret += (p*s*h);
	}
	return ret;
}

int main(int argc, char* argv[]){
	cin.tie(0);
	ios::sync_with_stdio(false);

	int A, B, C; cin >> A >> B >> C;
	long double ans = 0.0;
	for(int n=1; n<=300; n++){
		long double pa = prob(n, A, B, C);
		long double pb = prob(n, B, C, A);
		long double pc = prob(n, C, A, B);
		ans += n*(pa + pb + pc);
	}
	printf("%.12Lf\n", ans);
	return 0;
}
#include <iostream>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <algorithm>

using namespace std;
const int INF = 1 * (1 << 30);
const int mINF = -1 * (1 << 30);

int main()
{
  double ans = 0;
  int n, d, h;
  cin >> n >> d >> h;
  for (int i = 0; i < n; i++)
  {
    int d_i, h_i;
    cin >> d_i >> h_i;
    double b = (double)h - (double)d * (double)(h - h_i) / (double)(d - d_i);
    ans = max((double)ans, b);
  }
  cout << ans << endl;
  return 0;
}
