407744: GYM102889 E 群体狂乱

Memory Limit:512 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

E. 群体狂乱time limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard output

在炉石传说游戏里,有一张牌叫群体狂乱。

它的效果是:使每个随从随机攻击其它随从。

具体来说,我们首先均匀地随机随从的攻击顺序,然后随从按照顺序进行攻击。如果当前随从存活,那么均匀地随机选取一个除当前随从以外的存活的随从,进行攻击;但如果没有其余存活的随从,则跳过,不进行攻击。如果当前随从已经不再存活,则同样跳过,不进行攻击。

现有 n 个随从在场上,第 i 个随从拥有攻击力 atki 和血量 hpi。我们不考虑随从的各种特效,每次攻击时,参与攻击的双方的血量各自减少对方的攻击力。当某个随从的血量小于或等于 0 时,则认为该随从不再存活。

例如:一个 52 血的随从攻击一个 111 血的随从,之后 52 血的随从会变成 51 血,而 111 血的随从则变成了 16 血。

请问一次群体狂乱后,每个随从的存活概率。

Input

第一行,一个正整数 n (1 ≤ n ≤ 6),表示随从数。

接下来共 n 行,每行包含两个整数 atki, hpi (0 ≤ atki ≤ 106, 1 ≤ hpi ≤ 106),分别为第 i 个随从的攻击力和血量。

Output

一共输出 n 行,每一行一个小数,第 i 行输出表示第 i 个随从存活的概率。

若所有输出的值与标准答案的绝对误差或相对误差在 10 - 6 之内,则认定输出正确。具体地说,假设对于某个输出的值,你给出的答案为 a,而标准答案为 b,则你的答案被认为正确,当且仅当

ExamplesInput
3
1 1
1 1
1 1
Output
0.333333333333
0.333333333333
0.333333333333
Input
2
2 6
3 3
Output
0.000000000000
0.000000000000
Input
2
1 7
3 3
Output
1.000000000000
1.000000000000
Input
3
0 1
0 2
1 1
Output
0.208333333333
0.583333333333
1.000000000000
Note

即使随从只有 0 点攻击力,它也会主动去攻击一个目标,但是它不能对对方造成伤害,只会挨打。

一个死去的随从主动尝试攻击会被跳过;场上只有一个随从时攻击会被跳过。

在第一个样例中,第一个进行攻击的随从会与随机另一个互相消灭,之后剩下的两次攻击均被跳过。所以每一个随从都有 的概率存活。

在第二个样例中,一种情况是第一个随从先攻击第二个随从,然后第二个随从攻击第一个随从,双方都不再存活;另一种情况是第二个先攻击第一个、第一个再攻击第二个,这样两个随从也都无法存活。

在第三个样例中,无论谁先攻击,最后两者都剩余 1 血,即均存活。

加入题单

算法标签: