$m = {}

def f a
    dfs(a.inject(Array.new(a.max + 1, 0)){|r, i| r[i] += 1; r}, a.size).to_f
end

def dfs a, n
    # p [a]
    if r = $m[a]
        r
    elsif a[0] == n
        0r
    else
        res = 0
        if a[1] > 0 
            res += dfs([a[0]+1, a[1]-1, a[2], a[3]], n) * a[1] / (a[1] + a[2] + a[3])
        end
        if a[2] > 0
            res += dfs([a[0], a[1]+1, a[2]-1, a[3]], n) * a[2] / (a[1] + a[2] + a[3])
        end
        if a[3] > 0
            res += dfs([a[0], a[1], a[2]+1, a[3]-1], n) * a[3] / (a[1] + a[2] + a[3])
        end
        $m[a] = n.to_r / (a[1] + a[2] + a[3]) + res
    end
end

n = gets.to_i
a = gets.split.map(&:to_i)
p f(a)