#include <bits/stdc++.h>
using namespace std;
bool vis[102][102][102];
double dp[102][102][102];
double FF(int rock, int scs, int pap, int idx) {
  if ((!rock && !scs) || (!scs && !pap) || (!pap && !rock)) {
    if (idx == 0) {
      if (rock)
        return 1.0;
      else
        return 0.0;
    } else if (idx == 1) {
      if (scs)
        return 1.0;
      else
        return 0.0;
    } else {
      if (pap)
        return 1.0;
      else
        return 0.0;
    }
  }
  if (vis[rock][scs][pap]) return dp[rock][scs][pap];
  double ans = 0.0, temp, x, y;
  int tot = (rock + scs + pap);
  int rem = (tot * (tot - 1)) / 2;
  rem -= (rock * (rock - 1)) / 2;
  rem -= (scs * (scs - 1)) / 2;
  rem -= (pap * (pap - 1)) / 2;
  y = (double)rem;
  int k = 0;
  if (rock && scs) {
    x = (double)rock * scs;
    temp = x / y;
    ans += temp * FF(rock, scs - 1, pap, idx);
  }
  if (scs && pap) {
    x = (double)scs * pap;
    temp = x / y;
    ans += temp * FF(rock, scs, pap - 1, idx);
  }
  if (pap && rock) {
    x = (double)pap * rock;
    temp = x / y;
    ans += temp * FF(rock - 1, scs, pap, idx);
  }
  vis[rock][scs][pap] = 1;
  return dp[rock][scs][pap] = ans;
}
int main() {
  int r, s, p;
  scanf("%d %d %d", &r, &s, &p);
  for (int i = 0; i < 3; i++) {
    if (i) printf(" ");
    memset(vis, 0, sizeof(vis));
    double ans = FF(r, s, p, i);
    printf("%0.15lf", ans);
  }
}
