Note: The memory limit for this problem is 512MB, twice the default.
Bessie is having fun playing a famous online game, where there are a bunch of cells of different labels and sizes. Cells get eaten by other cells until only one winner remains.
There are N (2≤N≤5000) cells in a row labeled 1…N from left to right, with initial sizes s1,s2,…,sN (1≤si≤105). While there is more than one cell, a pair of adjacent cells is selected uniformly at random and merged into a single new cell according to the following rule:
If a cell with label a and current size ca is merged with a cell with label b and current size cb, the resulting cell has size ca+cb and label equal to that of the larger cell, breaking ties by larger label. Formally, the label of the resulting cell is {aca>cbbca<cbmax
For each label i in the range 1\dots N, the probability that the final cell has label i can be expressed in the form \frac{a_i}{b_i} where b_i\not\equiv 0\pmod{10^9+7}. Output a_ib_i^{-1}\pmod{10^9+7}.
Input
The first line contains N.
The next line contains s_1,s_2,\dots, s_N.
Output
The probability of the final cell having label i modulo 10^9+7 for each i in 1\dots N on separate lines.
Examples
Input 1
3 1 1 1
Output 1
0 500000004 500000004
There are two possibilities, where (a,b)\to c means that the cells with labels a and b merge into a new cell with label c.
(1, 2) -> 2, (2, 3) -> 2 (2, 3) -> 3, (1, 3) -> 3
So with probability 1/2 the final cell has label 2 or 3.
Input 2
4 3 1 1 1
Output 2
666666672 0 166666668 166666668
The six possibilities are as follows:
(1, 2) -> 1, (1, 3) -> 1, (1, 4) -> 1 (1, 2) -> 1, (3, 4) -> 4, (1, 4) -> 1 (2, 3) -> 3, (1, 3) -> 1, (1, 4) -> 1 (2, 3) -> 3, (3, 4) -> 3, (1, 3) -> 3 (3, 4) -> 4, (2, 4) -> 4, (1, 4) -> 4 (3, 4) -> 4, (1, 2) -> 1, (1, 4) -> 1
So with probability 2/3 the final cell has label 1, and with probability 1/6 the final cell has label 3 or 4.
Scoring
- Input 3: N\le 8
- Inputs 4-8: N\le 100
- Inputs 9-14: N\le 500
- Inputs 15-22: No additional constraints.
Problem credits: Benjamin Qi