CF1060F Shrinking Tree

Description

Consider a tree $ T $ (that is, a connected graph without cycles) with $ n $ vertices labelled $ 1 $ through $ n $ . We start the following process with $ T $ : while $ T $ has more than one vertex, do the following: - choose a random edge of $ T $ equiprobably; - shrink the chosen edge: if the edge was connecting vertices $ v $ and $ u $ , erase both $ v $ and $ u $ and create a new vertex adjacent to all vertices previously adjacent to either $ v $ or $ u $ . The new vertex is labelled either $ v $ or $ u $ equiprobably. At the end of the process, $ T $ consists of a single vertex labelled with one of the numbers $ 1, \ldots, n $ . For each of the numbers, what is the probability of this number becoming the label of the final vertex?

Input Format

The first line contains a single integer $ n $ ( $ 1 \leq n \leq 50 $ ). The following $ n - 1 $ lines describe the tree edges. Each of these lines contains two integers $ u_i, v_i $ — labels of vertices connected by the respective edge ( $ 1 \leq u_i, v_i \leq n $ , $ u_i \neq v_i $ ). It is guaranteed that the given graph is a tree.

Output Format

Print $ n $ floating numbers — the desired probabilities for labels $ 1, \ldots, n $ respectively. All numbers should be correct up to $ 10^{-6} $ relative or absolute precision.

Explanation/Hint

In the first sample, the resulting vertex has label 1 if and only if for all three edges the label 1 survives, hence the probability is $ 1/2^3 = 1/8 $ . All other labels have equal probability due to symmetry, hence each of them has probability $ (1 - 1/8) / 3 = 7/24 $ .