#include <bits/stdc++.h>
using namespace std;
long long mod = 998244353;
int main() {
  ios_base::sync_with_stdio(false);
  long long r, s, p;
  cin >> r >> s >> p;
  double dp[r + 1][s + 1][p + 1];
  int visited[r + 1][s + 1][p + 1];
  for (int i = 0; i < r + 1; i++) {
    for (int j = 0; j < s + 1; j++) {
      for (int k = 0; k < p + 1; k++) {
        dp[i][j][k] = 0;
        visited[i][j][k] = 0;
      }
    }
  }
  dp[r][s][p] = 1;
  visited[r][s][p] = 1;
  queue<pair<pair<double, double>, double> > q;
  q.push(make_pair(make_pair(r, s), p));
  while (!q.empty()) {
    int sz = q.size();
    for (int i = 0; i < sz; i++) {
      pair<pair<double, double>, double> curp = q.front();
      q.pop();
      double rr = curp.first.first;
      double ss = curp.first.second;
      double rp = curp.second;
      if ((int)rr > 0 && (int)ss > 0) {
        dp[(int)rr][(int)ss - 1][(int)rp] +=
            dp[(int)rr][(int)ss][(int)rp] *
            (((rr * ss)) / ((rr * ss + rp * rr + ss * rp)));
        if (visited[(int)rr][(int)ss - 1][(int)rp] == 0) {
          q.push(make_pair(make_pair(rr, ss - 1), rp));
          visited[(int)rr][(int)ss - 1][(int)rp] = 1;
        }
      }
      if ((int)rr > 0 && (int)rp > 0) {
        dp[(int)rr - 1][(int)ss][(int)rp] +=
            dp[(int)rr][(int)ss][(int)rp] *
            (((rr * rp)) / ((rr * ss + rp * rr + ss * rp)));
        if (visited[(int)rr - 1][(int)ss][(int)rp] == 0) {
          q.push(make_pair(make_pair(rr - 1, ss), rp));
          visited[(int)rr - 1][(int)ss][(int)rp] = 1;
        }
      }
      if ((int)rp > 0 && (int)ss > 0) {
        dp[(int)rr][(int)ss][(int)rp - 1] +=
            dp[(int)rr][(int)ss][(int)rp] *
            (((rp * ss)) / ((rr * ss + rp * rr + ss * rp)));
        if (visited[(int)rr][(int)ss][(int)rp - 1] == 0) {
          q.push(make_pair(make_pair(rr, ss), rp - 1));
          visited[(int)rr][(int)ss][(int)rp - 1] = 1;
        }
      }
    }
  }
  double ans1, ans2, ans3;
  ans1 = ans2 = ans3 = 0;
  for (int i = 1; i <= r; i++) {
    ans1 += dp[i][0][0];
  }
  for (int i = 1; i <= s; i++) {
    ans2 += dp[0][i][0];
  }
  for (int i = 1; i <= p; i++) {
    ans3 += dp[0][0][i];
  }
  std::cout << std::setprecision(9) << ans1 << " " << ans2 << " " << ans3;
  return 0;
}
