#include using namespace std; int main(){ cout << fixed << setprecision(20); int A, B, C, N; cin >> A >> B >> C >> N; vector>>> dp(N + 1, vector>>(A + 1, vector>(B + 1, vector(C + 1, 0)))); dp[0][A][B][C] = 1; for (int i = 0; i < N; i++){ for (int j = 0; j <= A; j++){ for (int k = 0; k <= B; k++){ for (int l = 0; l <= C; l++){ int s = j + k + l; int t = s * (s - 1) / 2; double p = 1; if (j >= 2){ int a = j * (j - 1) / 2; double pa = (double) a / t; p -= pa; dp[i + 1][j - 1][k][l] += dp[i][j][k][l] * pa; } if (k >= 2){ int b = k * (k - 1) / 2; double pb = (double) b / t; p -= pb; dp[i + 1][j][k - 1][l] += dp[i][j][k][l] * pb; } if (l >= 2){ int c = l * (l - 1) / 2; double pc = (double) c / t; p -= pc; dp[i + 1][j][k][l - 1] += dp[i][j][k][l] * pc; } dp[i + 1][j][k][l] += dp[i][j][k][l] * p; } } } } double ans1 = 0, ans2 = 0, ans3 = 0; for (int i = 0; i <= A; i++){ for (int j = 0; j <= B; j++){ for (int k = 0; k <= C; k++){ ans1 += dp[N][i][j][k] * (A - i); ans2 += dp[N][i][j][k] * (B - j); ans3 += dp[N][i][j][k] * (C - k); } } } cout << ans1 << ' ' << ans2 << ' ' << ans3 << endl; }