#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const* argv[]) {
  int r, p, s;
  cin >> r >> s >> p;
  double prob[r + 1][p + 1][s + 1];
  for (int i = 0; i < r + 1; i += 1) {
    for (int j = 0; j < p + 1; j += 1) {
      for (int k = 0; k < s + 1; k += 1) {
        prob[i][j][k] = 0;
      }
    }
  }
  prob[r][p][s] = 1;
  for (int i = r; i >= 0; i -= 1) {
    for (int j = p; j >= 0; j -= 1) {
      for (int k = s; k >= 0; k -= 1) {
        if (i + j + k == 0) {
          continue;
        }
        double tmp =
            (double)(i * i + j * j + k * k) / ((i + j + k) * (i + j + k));
        if (tmp == 1) {
          continue;
        }
        if (i > 0) {
          prob[i - 1][j][k] += ((prob[i][j][k]) * 2 * (i) * (j)) /
                               ((i + j + k) * (i + j + k) * (1 - tmp));
        }
        if (j > 0) {
          prob[i][j - 1][k] += ((prob[i][j][k]) * 2 * (j) * (k)) /
                               ((i + j + k) * (i + j + k) * (1 - tmp));
        }
        if (k > 0) {
          prob[i][j][k - 1] += ((prob[i][j][k]) * 2 * (i) * (k)) /
                               ((i + j + k) * (i + j + k) * (1 - tmp));
        }
      }
    }
  }
  double ans1 = 0, ans2 = 0, ans3 = 0;
  for (int i = 0; i < r + 1; i += 1) {
    ans1 += prob[i][0][0];
  }
  for (int i = 0; i < p + 1; i += 1) {
    ans2 += prob[0][i][0];
  }
  for (int i = 0; i < s + 1; i += 1) {
    ans3 += prob[0][0][i];
  }
  printf("%.12lf %.12lf %.12lf\n", ans1, ans3, ans2);
  return 0;
}
