#include <bits/stdc++.h>
using namespace std;
int r, s, p;
double dp[101][101][101];
int computed[101][101][101];
double prob(int a, int b, int c) {
  int nom = a * b;
  int denom = (a * b + a * c + c * b);
  if (denom == 0) return 0;
  double res = nom / (double)denom;
  return res;
}
double f(int r1, int s1, int p1) {
  if (r1 < 0 || s1 < 0 || p1 < 0 || r1 > r || s1 > s || p1 > p) {
    return 0;
  }
  if (computed[r1][s1][p1]) return dp[r1][s1][p1];
  double res = 0;
  res += f(r1 + 1, s1, p1) * prob(r1 + 1, p1, s1);
  double temp1 = f(r1, s1 + 1, p1);
  double temp2 = prob(r1, s1 + 1, p1);
  double temp3 = temp1 * temp2;
  res += f(r1, s1 + 1, p1) * prob(r1, s1 + 1, p1);
  res += f(r1, s1, p1 + 1) * prob(s1, p1 + 1, r1);
  computed[r1][s1][p1] = 1;
  return dp[r1][s1][p1] = res;
}
int main() {
  cin >> r >> s >> p;
  memset(computed, 0, sizeof(computed));
  dp[r][s][p] = 1;
  computed[r][s][p] = 1;
  double r_res = 0, s_res = 0, p_res = 0;
  for (int i = 1; i <= r; ++i) {
    r_res += f(i, 0, 0);
  }
  for (int i = 1; i <= s; ++i) {
    s_res += f(0, i, 0);
  }
  for (int i = 1; i <= p; ++i) {
    p_res += f(0, 0, i);
  }
  cout << setprecision(16) << r_res << " " << s_res << " " << p_res << endl;
}
