#include <bits/stdc++.h>
using namespace std;
const int maxn = 101;
long double dp[maxn][maxn][maxn][3];
int main() {
  int r, p, s;
  cin >> r >> s >> p;
  for (int i = 0; i <= r; i++) {
    for (int j = 0; j <= s; j++) {
      for (int k = 0; k <= p; k++) {
        if (i == 0 && j == 0 && k == 0) continue;
        if (k == 0) {
          if (i == 0) {
            dp[i][j][k][0] = 0;
            dp[i][j][k][1] = 1;
            dp[i][j][k][2] = 0;
          } else {
            dp[i][j][k][0] = 1;
            dp[i][j][k][1] = 0;
            dp[i][j][k][2] = 0;
          }
        } else if (j == 0) {
          dp[i][j][k][0] = 0;
          dp[i][j][k][1] = 0;
          dp[i][j][k][2] = 1;
        } else if (i == 0) {
          dp[i][j][k][0] = 0;
          dp[i][j][k][1] = 1;
          dp[i][j][k][2] = 0;
        } else {
          long double f = i * (j + k) + (j * k);
          dp[i][j][k][0] = ((i * k) / f) * dp[i - 1][j][k][0] +
                           ((i * j) / f) * dp[i][j - 1][k][0] +
                           ((j * k) / f) * dp[i][j][k - 1][0];
          dp[i][j][k][1] = ((i * k) / f) * dp[i - 1][j][k][1] +
                           ((i * j) / f) * dp[i][j - 1][k][1] +
                           ((j * k) / f) * dp[i][j][k - 1][1];
          dp[i][j][k][2] = ((i * k) / f) * dp[i - 1][j][k][2] +
                           ((i * j) / f) * dp[i][j - 1][k][2] +
                           ((j * k) / f) * dp[i][j][k - 1][2];
        }
      }
    }
  }
  cout << setprecision(13) << fixed << dp[r][s][p][0] << ' ' << dp[r][s][p][1]
       << ' ' << dp[r][s][p][2] << endl;
  return 0;
}
