func_code_string: #include <bits/stdc++.h>   using namespace std;   double dp[105][105][105][3] = {{{{0}}}};   bool used[105][105][105] = {{{0}}};   void f(int a, int b, int c) {     if (used[a][b][c]) return;     ;     used[a][b][c] = 1;     if (a == 0)       dp[a][b][c][1] = 1;     else if (b == 0)       dp[a][b][c][2] = 1;     else if (c == 0)       dp[a][b][c][0] = 1;     else {       f(a - 1, b, c);       f(a, b - 1, c);       f(a, b, c - 1);       int tmp = a * b + b * c + c * a;       for (int i = 0; i < (3); i++) {         dp[a][b][c][i] = dp[a - 1][b][c][i] * a * c / tmp +                          dp[a][b - 1][c][i] * a * b / tmp +                          dp[a][b][c - 1][i] * b * c / tmp;       }     };     return;   }   int main() {     int a, b, c;     scanf( %d%d%d , &a, &b, &c);     f(a, b, c);     printf( %.9f %.9f %.9f n , dp[a][b][c][0], dp[a][b][c][1], dp[a][b][c][2]);     return 0;   }   