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

using ll = long long;

ll A, B, C;

long double memo[101][101][101];

long double f(int a, int b, int c){
    if(memo[a][b][c] != 0)return memo[a][b][c];
    if(a == 100 || b == 100 || c == 100){
        return 0;
    }
    return memo[a][b][c] = (1.0 * a / (a + b + c)) * (f(a + 1, b, c) + 1) + (1.0 * b / (a + b + c))* (f(a, b + 1, c) + 1) + (1.0 * c / (a + b + c))* (f(a, b, c + 1) + 1);
}

void solve(){
    cout<<setprecision(20)<<f(A, B, C);
}

int main(){
    scanf("%lld",&A);

    scanf("%lld",&B);
    scanf("%lld",&C);
    solve();
    return 0;
}

//#define _GLIBCXX_DEBUG
#include<bits/stdc++.h>
//#include<ctime>
//#include<algorithm>//next_permutation
#define rep(i,n) for (ll i = 0;i < (n);i++)
#define all(v) v.begin(),v.end()
#define dec(n) cout << fixed << setprecision(n);
#define large "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define small "abcdefghijklmnopqrstuvwxyz"
using namespace std;
using ll = long long;
using P = pair<ll,ll>;
using vl = vector<ll>;
using vvl = vector<vl>;
using vc = vector<char>;
using vvc = vector<vc>;

ll gcd(ll a,ll b){
  if(b == 0) return a;
  return gcd(b , a % b);
}

const ll MOD = 1000000007;
const ll MAX = 2000001;

ll mod(ll a){
  return a % MOD;
}

ll lcm(ll a,ll b){
  return (a*b)/gcd(a,b);
}




int main(){
  long double a,b,c; cin >> a >> b >> c; dec(15);

  if(a > b) swap(a,b);
  if(b > c) swap(b,c);

  vector<vector<vector<long double>>> dp(110,vector<vector<long double>>(110,vector<long double>(110)));

  dp[a][b][c] = 1.0;

  for(ll i=0; i < 100; i++){
    for(ll j=0; j < 100; j++){
      for(ll k=1; k < 100; k++){

        long double now = dp[i][j][k];

        long double di[] = {1.0,0,0};
        long double dj[] = {0,1.0,0};
        long double dk[] = {0,0,1.0};

        rep(l,3){
          dp[i+di[l]][j+dj[l]][k+dk[l]] += 
          (i*di[l] + j*dj[l] + k*dk[l])/((long double)(i+j+k))*now; 
        }

      }
    }
  }


  long double ans = 0;

  for(ll i=0; i < 100; i++){
    for(ll j=0; j < 100; j++){
      ans += dp[100][i][j]*(100+i+j-a-b-c);
      ans += dp[i][100][j]*(100+i+j-a-b-c);
      ans += dp[i][j][100]*(100+i+j-a-b-c);
    }
  }

  cout << ans << endl;


}