#include <bits/stdc++.h>
using namespace std;
const int N = 102;
double dp[N][N][N][3];
int vis[N][N][N][3];
double call(int r, int s, int p, int id) {
  if (id == 0) {
    if (r == 0) return 0;
    if (s + p == 0) return 1;
  } else if (id == 1) {
    if (s == 0) return 0;
    if (r + p == 0) return 1;
  } else {
    if (p == 0) return 0;
    if (r + s == 0) return 1;
  }
  if (vis[r][s][p][id] == 1) return dp[r][s][p][id];
  vis[r][s][p][id] = 1;
  double ret = 0;
  double total = ((r + s + p - 1) * (r + s + p)) / 2;
  double pr = ((r * (r - 1)) / 2) / total;
  double ps = ((s * (s - 1)) / 2) / total;
  double pp = ((p * (p - 1)) / 2) / total;
  double prs = (r * s) / total;
  double prp = (r * p) / total;
  double psp = (s * p) / total;
  double prob = pr + ps + pp;
  if (r >= 1 and s >= 1) ret = ret + prs * call(r, s - 1, p, id);
  if (r >= 1 and p >= 1) ret = ret + prp * call(r - 1, s, p, id);
  if (s >= 1 and p >= 1) ret = ret + psp * call(r, s, p - 1, id);
  return dp[r][s][p][id] = ret / (1 - prob);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(nullptr);
  int r, s, p;
  cin >> r >> s >> p;
  cout << fixed << setprecision(9) << call(r, s, p, 0) << " "
       << call(r, s, p, 1) << " " << call(r, s, p, 2) << "\n";
}
