#include <bits/stdc++.h>
using namespace std;
const long long MX = 105;
long double dp[MX][MX][MX][3];
bool used[MX][MX][MX][3];
long double comb(long long a, long long b) {
  long double ans = 1.0;
  while (b > 0) {
    ans *= 1.0 * a / b;
  }
  return ans;
}
long double elec(long long a, long long b, long long c) {
  long long sum = a + b + c;
  return 2.0 * a * b / (sum * (sum - 1));
}
long double mismo(long long a, long long b, long long c) {
  long long sum = a + b + c;
  return 1.0 * a * (a - 1) / (sum * (sum - 1));
}
long double f(long long a, long long b, long long c, long long x) {
  if (x == 0) {
    if (a == 0) return 0.0;
    if (b == 0 && c == 0) return 1.0;
  } else if (x == 1) {
    if (b == 0) return 0.0;
    if (a == 0 && c == 0) return 1.0;
  } else {
    if (c == 0) return 0.0;
    if (a == 0 && b == 0) return 1.0;
  }
  if (used[a][b][c][x]) {
    return dp[a][b][c][x];
  }
  used[a][b][c][x] = true;
  long double ans = 0;
  long long cnt = 0;
  if (a > 0 && c > 0) {
    ans += f(a - 1, b, c, x) * elec(a, c, b);
  }
  if (b > 0 && a > 0) {
    ans += f(a, b - 1, c, x) * elec(a, b, c);
    ;
  }
  if (c > 0 && b > 0) {
    ans += f(a, b, c - 1, x) * elec(b, c, a);
  }
  ans /= (1 - mismo(a, b, c) - mismo(c, b, a) - mismo(b, c, a));
  return dp[a][b][c][x] = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long r, s, p;
  cin >> r >> s >> p;
  cout << fixed << setprecision(15) << f(r, s, p, 0) << " " << f(r, s, p, 1)
       << " " << f(r, s, p, 2) << endl;
  return 0;
}
