#include <bits/stdc++.h>
using namespace std;
struct haha {
  double nr, ns, np;
  haha(double t1, double t2, double t3) {
    nr = t1;
    ns = t2;
    np = t3;
  }
  haha() {}
} dp[101][101][101];
int nc2(int in) { return in * (in - 1) / 2; }
haha go(int tr, int ts, int tp) {
  int r = nc2(tr), s = nc2(ts), p = nc2(tp), sum = nc2(tr + ts + tp);
  int nsb = sum - r - s - p;
  haha t1(0.0, 0.0, 0.0), t2(0.0, 0.0, 0.0), t3(0.0, 0.0, 0.0),
      sb(0.0, 0.0, 0.0);
  double war, was, wap;
  haha &ans = dp[tr][ts][tp];
  if (ans.np > 0 || ans.nr > 0 || ans.ns > 0) return ans;
  if (tr == 0) return ans = haha(0.0, 1.0, 0.0);
  if (ts == 0) return ans = haha(0.0, 0.0, 1.0);
  if (tp == 0) return ans = haha(1.0, 0.0, 0.0);
  t1 = go(tr - 1, ts, tp);
  t2 = go(tr, ts - 1, tp);
  t3 = go(tr, ts, tp - 1);
  war = tr * tp * 1.0 / sum * t1.nr + ts * tr * 1.0 / sum * t2.nr +
        ts * tp * 1.0 / sum * t3.nr;
  was = tr * tp * 1.0 / sum * t1.ns + ts * tr * 1.0 / sum * t2.ns +
        ts * tp * 1.0 / sum * t3.ns;
  wap = tr * tp * 1.0 / sum * t1.np + ts * tr * 1.0 / sum * t2.np +
        ts * tp * 1.0 / sum * t3.np;
  if (s + r + p == 0)
    return ans = haha(war, was, wap);
  else {
    sb = haha(war / ((sum - r - s - p) * 1.0 / sum),
              was / ((sum - r - s - p) * 1.0 / sum),
              wap / ((sum - r - s - p) * 1.0 / sum));
    return ans = haha(sb.nr, sb.ns, sb.np);
  }
}
int main() {
  int r, s, p;
  haha wa(0.0, 0.0, 0.0);
  scanf("%d %d %d", &r, &s, &p);
  wa = go(r, s, p);
  printf("%.12lf %.12f %.12f\n", wa.nr, wa.ns, wa.np);
}
