#include <bits/stdc++.h>
using namespace std;
using namespace std;
int g[501][501][2] = {{{0}}};
int n, m;
string s[501];
int sx, sy;
int ex, ey;
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
int in(int x, int y) {
  if (x < 0 || y < 0) return 0;
  if (x >= n || y >= m) return 0;
  return 1;
}
int dfs(int fx, int fy, int cr) {
  if (g[fx][fy][cr]) return 0;
  g[fx][fy][cr] = 1;
  int ans = 0;
  for (int i = 0; i < 4; i++) {
    int tx = fx + dx[i];
    int ty = fy + dy[i];
    if (!in(tx, ty)) continue;
    if (s[tx][ty] == '.') {
      s[tx][ty] = 'X';
      ans += dfs(tx, ty, 0);
    } else if (tx == ex && ty == ey) {
      return 1;
    }
  }
  return ans;
}
double dp[101][101][101] = {{{0.0}}};
int maint() {
  int r, s, p;
  cin >> r >> s >> p;
  memset(dp, 0, sizeof(dp));
  double p1 = 0, p2 = 0, p3 = 0;
  dp[r][s][p] = 1;
  for (int i = r; i >= 0; i--) {
    for (int j = s; j >= 0; j--) {
      for (int k = p; k >= 0; k--) {
        if (j == 0 && k == 0) p1 += dp[i][j][k];
        if (i == 0 && k == 0) p2 += dp[i][j][k];
        if (i == 0 && j == 0) p3 += dp[i][j][k];
        double den = i * j + j * k + k * i;
        if (i * j + j * k + k * i == 0) {
          continue;
        }
        int q = k;
        int pdif = den;
        if (i > 0 && j > 0) dp[i][j - 1][q] += 1.0 * i * j * dp[i][j][q] / pdif;
        if (j > 0 && q > 0) dp[i][j][q - 1] += 1.0 * j * q * dp[i][j][q] / pdif;
        if (i > 0 && q > 0) dp[i - 1][j][q] += 1.0 * i * q * dp[i][j][q] / pdif;
      }
    }
  }
  printf("%0.9lf %0.9lf %0.9lf", p1, p2, p3);
  return 0;
}
int main() {
  return maint();
  return 0;
}
