#include <bits/stdc++.h>
using namespace std;
double dp[101][101][101];
bool vis[101][101][101];
void solve(int r, int s, int p) {
  dp[r][s][p] = 1.0;
  for (int sum = r + s + p; sum >= 0; sum--) {
    for (int i = r; i >= 0; i--) {
      for (int j = s; j >= 0; j--) {
        int k = sum - i - j;
        if (k < 0 || k > p) continue;
        if (i == 0 && j == 0) continue;
        if (j == 0 && k == 0) continue;
        if (i == 0 && k == 0) continue;
        double curr = dp[i][j][k];
        int waysr = i * j;
        int wayss = j * k;
        int waysp = k * i;
        int total = waysr + wayss + waysp;
        if (i > 0) dp[i - 1][j][k] += (curr * (((double)(waysp)) / total));
        if (j > 0) dp[i][j - 1][k] += (curr * (((double)(waysr)) / total));
        if (k > 0) dp[i][j][k - 1] += (curr * (((double)(wayss)) / total));
      }
    }
  }
}
int main() {
  int r, s, p;
  cin >> r >> s >> p;
  memset(vis, false, sizeof(vis));
  dp[r][s][p] = 1.0;
  solve(r, s, p);
  double pr = 0.0;
  for (int i = 1; i < r + 1; i++) {
    pr += dp[i][0][0];
  }
  double ps = 0.0;
  for (int i = 1; i < s + 1; i++) {
    ps += dp[0][i][0];
  }
  double pp = 0.0;
  for (int i = 1; i < p + 1; i++) {
    pp += dp[0][0][i];
  }
  cout << setprecision(15);
  cout << pr << " " << ps << " " << pp << endl;
  return 0;
}
