//#include <atcoder/all>
#include <bits/stdc++.h>

using namespace std;


#define rep2(x,fr,to) for(int x=(fr);x<(to);x++)
#define rep(x,to) for(int x=0;x<(to);x++)
#define repr(x,fr,to) for(int x=(fr);x>=(to);x--)
#define all(c) c.begin(),c.end()
#define sz(v) (int)v.size()

typedef long long  ll; typedef vector<int> VI; typedef pair<int,int> pii; typedef vector<ll> VL; const int MD = 1e9+7; //998244353;
void dbg(){cerr<<"\n";} template <class F,class ...S> void dbg(const F& f, const S&...s){cerr <<f <<": "; dbg(s...);}

//using mint = atcoder::modint1000000007;


double dp[102][102][102];

int main()
{
	cin.tie(0); ios_base::sync_with_stdio(false);
	int  a, b, c;
	cin >> a >>b >>c;

	double ans = 0;
	
	dp[a][b][c] = 1;
	
	rep2(i, a, 101) rep2(j, b, 101) rep2(k, c, 101){
		
		if(i==100 || j==100 || k==100){
			ans += dp[i][j][k] * ((i+j+k)-(a+b+c));
			continue;
		}
		
		dp[i+1][j][k] += dp[i][j][k] *  i/(i+j+k);
		dp[i][j+1][k] += dp[i][j][k] *  j/(i+j+k);
		dp[i][j][k+1] += dp[i][j][k] *  k/(i+j+k);
	
	}
	
	printf("%.16f\n", ans);

	return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ll long long
#define P pair<int,int>
#define PI 3.141592653589793
const int INF = 1001001001;
const ll MX = 1e18;
const int mod = 998244353;
template<class T> inline bool chmax(T& a, T b) {
	if (a < b) {
		a = b;
		return true;
	}
	return false;
}

int main() {
	cout << fixed << setprecision(6);
	double sx, sy, gx, gy;
	cin >> sx >> sy >> gx >> gy;
	gy *= -1;
	double ans=sx + sy * (gx - sx) / (sy - gy);
	cout << ans << endl;
}