#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { cin.tie(nullptr)->sync_with_stdio(false); int a, b, c, n; cin >> a >> b >> c >> n; vector prob(a + 1, vector(b + 1, vector(c + 1, 0))); prob[a][b][c] = 1; rep(_, n) { vector nprob(a + 1, vector(b + 1, vector(c + 1, 0))); rep(i, a + 1) rep(j, b + 1) rep(k, c + 1) { if (!i || !j || !k) continue; long double pa = (long double) i / (i + j + k) * (i - 1) / (i + j + k - 1); long double pb = (long double) j / (i + j + k) * (j - 1) / (i + j + k - 1); long double pc = (long double) k / (i + j + k) * (k - 1) / (i + j + k - 1); long double pd = 1 - pa - pb - pc; assert(pd >= 0); nprob[i - 1][j][k] += pa * prob[i][j][k]; nprob[i][j - 1][k] += pb * prob[i][j][k]; nprob[i][j][k - 1] += pc * prob[i][j][k]; nprob[i][j][k] += pd * prob[i][j][k]; } swap(prob, nprob); } long double ans1 = 0, ans2 = 0, ans3 = 0; rep(i, a + 1) rep(j, b + 1) rep(k, c + 1) { ans1 += (a - i) * prob[i][j][k]; ans2 += (b - j) * prob[i][j][k]; ans3 += (c - k) * prob[i][j][k]; } cout << fixed << setprecision(15) << ans1 << ' ' << ans2 << ' ' << ans3 << '\n'; return 0; }