#include <bits/stdc++.h>
using namespace std;
char buffer[100000 + 10];
int bufpoz = 100000 + 10;
inline void get(int &n);
double dp[128][128][128];
int main() {
  int R, S, P;
  get(R);
  get(S);
  get(P);
  dp[R][S][P] = 1.0;
  for (int r = R; r >= 0; --r)
    for (int s = S; s >= 0; --s)
      for (int p = P; p >= 0; --p) {
        int rs = r * s;
        int sp = p * s;
        int pr = r * p;
        int tot = rs + sp + pr;
        if (pr) dp[r - 1][s][p] += dp[r][s][p] * 1.0 * pr / tot;
        if (rs) dp[r][s - 1][p] += dp[r][s][p] * 1.0 * rs / tot;
        if (sp) dp[r][s][p - 1] += dp[r][s][p] * 1.0 * sp / tot;
      }
  double rr = 0.0, ss = 0.0, pp = 0.0;
  for (int i = 1; i <= R; ++i) rr += dp[i][0][0];
  for (int i = 1; i <= S; ++i) ss += dp[0][i][0];
  for (int i = 1; i <= P; ++i) pp += dp[0][0][i];
  printf("%.12lf %.12lf %.12lf\n", rr, ss, pp);
  return 0;
}
inline void get(int &n) {
  n = 0;
  if (bufpoz > 100000) fread(buffer, 100000, 1, stdin), bufpoz = 0;
  int semn = 1;
  while ('0' > buffer[bufpoz] || buffer[bufpoz] > '9') {
    if (buffer[bufpoz] == '-') semn = -1;
    if (++bufpoz == 100000) fread(buffer, 1, 100000, stdin), bufpoz = 0;
  }
  while ('0' <= buffer[bufpoz] && buffer[bufpoz] <= '9') {
    n = n * 10 + buffer[bufpoz] - 48;
    if (++bufpoz == 100000) fread(buffer, 1, 100000, stdin), bufpoz = 0;
  }
  n *= semn;
}
