#include <bits/stdc++.h>
using namespace std;
const long long nInf = -1000000000;
const long long pInf = 1000000000;
const long long mod = 1000000007;
const int maxn = 101;
double dp[maxn][maxn][maxn];
bool b[maxn][maxn][maxn];
int main() {
  cout.precision(10);
  for (int i = 0; i < maxn; i++) {
    for (int j = 0; j < maxn; j++) {
      for (int k = 0; k < maxn; k++) {
        dp[i][j][k] = 0;
        b[i][j][k] = false;
      }
    }
  }
  int r, s, p;
  cin >> r >> s >> p;
  dp[r][s][p] = 1;
  queue<pair<pair<int, int>, int>> q;
  q.push(make_pair(make_pair(r, s), p));
  b[r][s][p] = true;
  double resr, ress, resp;
  resr = ress = resp = 0;
  while (!q.empty()) {
    pair<pair<int, int>, int> front = q.front();
    q.pop();
    int r1 = front.first.first;
    int s1 = front.first.second;
    int p1 = front.second;
    if ((r1 * s1 + r1 * p1 + s1 * p1 == 0)) continue;
    b[r1][s1][p1] = true;
    if (p1 == 0 && r1 == 0 && s1 == 0) continue;
    if (r1 > 0) {
      dp[r1 - 1][s1][p1] +=
          dp[r1][s1][p1] * (p1 * r1) / (r1 * s1 + r1 * p1 + s1 * p1);
      if (!(r1 - 1 == 0 && s1 == 0 && p1 == 0) && (!b[r1 - 1][s1][p1])) {
        b[r1 - 1][s1][p1] = true;
        q.push(make_pair(make_pair(r1 - 1, s1), p1));
      }
    } else {
    }
    if (s1 > 0) {
      dp[r1][s1 - 1][p1] +=
          dp[r1][s1][p1] * (s1 * r1) / (r1 * s1 + r1 * p1 + s1 * p1);
      if (!(s1 - 1 == 0 && r1 == 0 && p1 == 0) && (!b[r1][s1 - 1][p1])) {
        b[r1][s1 - 1][p1] = true;
        q.push(make_pair(make_pair(r1, s1 - 1), p1));
      }
    } else {
    }
    if (p1 > 0) {
      dp[r1][s1][p1 - 1] +=
          dp[r1][s1][p1] * (p1 * s1) / (r1 * s1 + r1 * p1 + s1 * p1);
      if (!(p1 - 1 == 0 && s1 == 0 && r1 == 0) && (!b[r1][s1][p1 - 1])) {
        b[r1][s1][p1 - 1] = true;
        q.push(make_pair(make_pair(r1, s1), p1 - 1));
      }
    } else {
    }
  }
  dp[0][0][0] = 0;
  for (int i = 1; i <= r; i++) {
    resr += dp[i][0][0];
  }
  for (int i = 1; i <= s; i++) {
    ress += dp[0][i][0];
  }
  for (int i = 1; i <= p; i++) {
    resp += dp[0][0][i];
  }
  cout << fixed << resr << " " << fixed << ress << " " << fixed << resp;
  return 0;
}
