#include <bits/stdc++.h>
using namespace std;
double dp[105][105][105];
double solve(int r, int s, int p) {
  if (!r) return 0;
  if (!s && !p) return 1;
  if (dp[r][s][p] != -1) return dp[r][s][p];
  double res = 0;
  if (s) res += r * s * solve(r, s - 1, p);
  if (p) res += s * p * solve(r, s, p - 1);
  if (r) res += r * p * solve(r - 1, s, p);
  return dp[r][s][p] = res / (r * s + r * p + s * p);
}
void meset() {
  for (int i = 0; i < 105; i++)
    for (int j = 0; j < 105; j++)
      for (int k = 0; k < 105; k++) dp[i][j][k] = -1;
}
int main() {
  int r, s, p;
  scanf("%d %d %d", &r, &s, &p);
  meset();
  double resr = solve(r, s, p);
  meset();
  double ress = solve(s, p, r);
  double resp = 1 - ress - resr;
  cout << fixed << setprecision(11);
  cout << resr << " " << ress << " " << resp << endl;
}
