#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>; 
using pll = pair<long long, long long>;
constexpr char ln =  '\n';
constexpr long long MOD = 1000000007;
//constexpr long long MOD = 998244353;
constexpr long long INF = 1e9+10;
constexpr long long LINF = 1e18+10;
#define all(x) (x).begin(),(x).end()
#define rep(i,n) for(int i=0;i<(n);i++)
#define rept(i, j, n) for(int i=(j); i<(n); i++)
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }

double func(int sel, int a, int b, int c){
     return (double)(sel)/(a+b+c);
}
double dp[110][110][110];
int memo[110][110][110];

int main(){
    int a,b,c; cin >> a >> b >> c;

    double res = 0;
    dp[a][b][c] = 1;
    for(int r=a+b+c; r<=300; r++){
        for(int x=a; x<=100; x++){
            for(int y=b; y<=100; y++){
                for(int z=c; z<=100; z++){
                    if(x+y+z > r)continue;
        
                    if(x==100 or y==100 or z==100){
                        if(memo[x][y][z])continue;
                        //cout << "x:" << x << "y:" << y << "z:" << z <<"dp:"<< dp[x][y][z]<< ln;
                        int cnt = (x+y+z) - (a+b+c);
                        res += dp[x][y][z] * cnt;
                        memo[x][y][z] = true;
                    }else{
                    if(memo[x][y][z])continue;
                    //cout << "non:" << " x:" << x << "y:" << y << "z:" << z << ln; 
                    dp[x+1][y][z] += dp[x][y][z] * func(x,x,y,z);
                    dp[x][y+1][z] += dp[x][y][z] * func(y,x,y,z);
                    dp[x][y][z+1] += dp[x][y][z] * func(z,x,y,z);
                    memo[x][y][z] = true;
                    }
                }
            }
        }
    }
    cout << fixed << setprecision(12);
    cout << res << ln;
}

#include "bits/stdc++.h"
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds; 
using namespace std;
 #define int long long int
#define IOS ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define vi vector <int>
#define ff first
#define ss second
#define vp vector <pair<int,int>>
#define vpp vector <pair<int,pair<int,int>>>
#define seti set<int>
#define setbit(x) __builtin_popcountll(x)
#define sov(v) accumulate(all(v),0)
#define fs(it,a) for(auto it=a.begin();it!=a.end();it++)
#define pb push_back
#define pob pop_back
#define mp make_pair
#define pqmax priority_queue <int,vector <int>> 
#define pqmin priority_queue <int,vector <int>,greater<int>> 
#define dq deque <int>
#define umi unordered_map<int,int>
#define ums unordered_map<string,int>
#define sp(x,y) fixed << setprecision(y) << x
#define out(r,x) cout<<"Case #"<<r<<": "<<x<<ee;
#define all(x) x.begin(),x.end()
#define f(x,y,z) for(x=y;x<z;x++)
#define si size()
#define countdigit(x) floor(log10(x) +1)
#define M 1000000007
#define Z 998244353 
#define fill(arr,x) memset(arr,x,sizeof(arr))
//Use (k%M+m)%m always where k is any no
#define PI 3.1415926535
#define lcm(a,b)  a*b/(__gcd(a,b))
// typedef tree<int, null_type, less<int>, rb_tree_tag, 
// tree_order_statistics_node_update> pdbs; 
// // null for set,mapped_type for map; 
// //less for assending greater for descending
//ceil(a/b)=(a+b-1)/b
// v.si-1 can never be negative
#define ghadi() cerr<<"\nTime Taken : "<<(float)(clock()-time_p)/CLOCKS_PER_SEC<<"\n";
clock_t time_p=clock();
#define ee "\n"
#define re return 
 
 
//Author Rahul Sannigrahi
 
vector<int> take(int n)
{
    int i,j;
    vi v;
    f(i,0,n)
    {
        cin>>j;
        v.pb(j);
    }
    return v;
}
 
int power(int x,int y)
{
    int res=1;
    
    while(y>0)
    {
       if(y&1)
       res=((res%M)*(x%M))%M;
       
       y=y>>1;
       x=((x%M)*(x%M))%M;
    }
    re res;
} 
 
bool sortinrev(const pair<int,int> &a,  //desc of vp
               const pair<int,int> &b) 
{ 
       return (a.first > b.first); 
}


 
 
 
void show(vector<int>v)
{
    int i;
    for(i=0;i<v.si;i++)
    {
     cout<<v[i]<<" ";   
    }
    cout<<ee;
}

 
int decode()
{
int i,j,k,l,n,a,b,c;
cin>>a>>b>>c;
// double d=(float)b/a;
// cout<<d<<ee;
int ans=b*c/a;
if(ans*a==b*c)
ans--;
cout<<ans<<ee;
   re 0;
}
 
int32_t main()
{
    IOS
    // #ifndef ONLINE_JUDGE
    // freopen("input.txt","r",stdin);
    //  freopen("output.txt","w",stdout);
    // #endif 
    
    int t=1;
    //   cin>>t;
    while(t--)
    decode();
    return 0;
}