#include using namespace std; using ll =long long; #define all(v) v.begin(),v.end() #define rep(i,a,b) for(int i=a;i=b;i--) struct bag{double x,y,z;}; vector>>> memo; vector>>> note; double A,B,C,N; bag dp(double a,double b,double c,double n) { if(n==0) return {0,0,0}; if(note[a][b][c][n]) return memo[a][b][c][n]; double k=(a+b+c)*(a+b+c-1)/2; double x=a*(a-1)/2; double y=b*(b-1)/2; double z=c*(c-1)/2; bag e={0,0,0}; if(a>1) { bag s=dp(a-1,b,c,n-1); e.x+=(s.x+1)*x/k; e.y+=(s.y)*x/k; e.z+=(s.z)*x/k; } if(b>1) { bag s=dp(a,b-1,c,n-1); e.y+=(s.y+1)*y/k; e.x+=(s.x)*y/k; e.z+=(s.z)*y/k; } if(c>1) { bag s=dp(a,b,c-1,n-1); e.x+=s.x*z/k; e.y+=s.y*z/k; e.z+=(s.z+1)*z/k; } double d=k-x-y-z; if(d>0) { bag s=dp(a,b,c,n-1); e.x+=s.x*d/k; e.y+=s.y*d/k; e.z+=s.z*d/k; } note[a][b][c][n-1]=true; memo[a][b][c][n]=e; return e; } int main() { cin>>A>>B>>C>>N; note=vector>>>(A+1,vector>> (B+1,vector> (C+1,vector (N)))); memo=vector>>> (A+1,vector>> (B+1,vector>(C+1,vector (N)))); cout<