A, B, C, N = map(int, input().split())

# Initialize the DP table for k=0 (all zeros)
prev_dp = [[[ (0.0, 0.0, 0.0) for _ in range(C+1)] for __ in range(B+1)] for ___ in range(A+1)]

for step in range(N):
    current_dp = [[[0.0 for _ in range(3)] for __ in range(B+1)] for ___ in range(A+1)]
    for a in range(A+1):
        for b in range(B+1):
            for c in range(C+1):
                total = a + b + c
                if total < 2:
                    current_dp[a][b][c] = (0.0, 0.0, 0.0)
                    continue
                total_choose = total * (total - 1) // 2
                expected_w = 0.0
                expected_b = 0.0
                expected_cr = 0.0
                
                # Same white
                if a >= 2:
                    pairs = a * (a - 1) // 2
                    prob = pairs / total_choose
                    new_a = a - 1
                    ew, eb, ecr = prev_dp[new_a][b][c]
                    expected_w += prob * (1.0 + ew)
                    expected_b += prob * eb
                    expected_cr += prob * ecr
                
                # Same black
                if b >= 2:
                    pairs = b * (b - 1) // 2
                    prob = pairs / total_choose
                    new_b = b - 1
                    ew, eb, ecr = prev_dp[a][new_b][c]
                    expected_b += prob * (1.0 + eb)
                    expected_w += prob * ew
                    expected_cr += prob * ecr
                
                # Same brown
                if c >= 2:
                    pairs = c * (c - 1) // 2
                    prob = pairs / total_choose
                    new_c = c - 1
                    ew, eb, ecr = prev_dp[a][b][new_c]
                    expected_cr += prob * (1.0 + ecr)
                    expected_w += prob * ew
                    expected_b += prob * eb
                
                # Different pairs
                # White and Black
                if a > 0 and b > 0:
                    pairs = a * b
                    prob = pairs / total_choose
                    ew, eb, ecr = prev_dp[a][b][c]
                    expected_w += prob * ew
                    expected_b += prob * eb
                    expected_cr += prob * ecr
                
                # White and Brown
                if a > 0 and c > 0:
                    pairs = a * c
                    prob = pairs / total_choose
                    ew, eb, ecr = prev_dp[a][b][c]
                    expected_w += prob * ew
                    expected_b += prob * eb
                    expected_cr += prob * ecr
                
                # Black and Brown
                if b > 0 and c > 0:
                    pairs = b * c
                    prob = pairs / total_choose
                    ew, eb, ecr = prev_dp[a][b][c]
                    expected_w += prob * ew
                    expected_b += prob * eb
                    expected_cr += prob * ecr
                
                current_dp[a][b][c] = (expected_w, expected_b, expected_cr)
    prev_dp = current_dp

final = prev_dp[A][B][C]
print(final[0], final[1], final[2])