在职业体育运动中,通常在每个赛季结束后举行选秀。选秀允许各支球队从可用的新秀中挑选新球员。选秀顺序通常通过抽签(乐透)决定。球队获得选秀顺位的概率取决于该球队在常规赛中的成绩。球队在常规赛中的战绩越差,他们在抽签中获得高顺位选秀权(并在下个赛季前增强球队实力)的概率就越高。
Image generated by Gemini 2.5 Flash. CC BY-SA 3.0
这里我们介绍一种新颖的选秀抽签过程。倒数 $N$ 支球队中的每一支都会将自己球队的标志印在一定数量的抽签球上(每个球上恰好有一个球队的标志);倒数第 $i$ 的球队在抽签中获得 $b_i$ 个乒乓球。如果球队 $i$ 的战绩比球队 $j$ 差,则 $b_i \ge b_j$。
所有的乒乓球都被放入一个搅拌容器中,并依次抽取。第一个被抽出的乒乓球上印有其标志的球队获得第一顺位选秀权。抽出的球会被丢弃。接着抽取第二个球,球上印有其标志的球队获得第二顺位选秀权,依此类推。每当抽到一个已经获得选秀权的球队的球时,该球会被忽略,并重新抽取另一个球代替。
前 3 个顺位通过这种抽签方式分配。在前 3 个顺位分配完毕后,剩余的球队(那些没有通过抽签获得前 3 顺位的球队)将按照战绩从差到好的顺序依次分配剩余的顺位。
你被某支球队的分析与策略副总裁聘请为顾问,以确定每支球队获得某些特定顺位的概率,从而帮助球队评估潜在交易方案的价值。
给定每支球队在选秀中获得的乒乓球数量,你必须计算格式为 $(t, k)$ 的查询的答案,即:球队 $t$ 获得前 $k$ 个选秀顺位之一的概率是多少?
输入格式
第一行包含一个整数 $N$ ($3 \le N \le 50$),表示参与选秀抽签的球队数量。
接下来的 $N$ 行提供了分配给每支球队的抽签球数量。具体来说,这 $N$ 行中的第 $i$ 行包含两个值:一个整数 $b_i$ ($1 \le b_i \le 50$) 和一个字符串 $t_i$。球队名称 $t_i$ 由一到十个大写字母组成。$t_i$ 的抽签球数量由 $b_i$ 表示。球队名称是唯一的,且球队严格按照战绩从差到好的顺序排列;对于紧接在球队 $t_{i+1}$ 之前列出的球队 $t_i$,保证 $b_i \ge b_{i+1}$。
下一行包含一个整数 $Q$ ($1 \le Q \le 200$),表示概率查询的数量。
接下来 $Q$ 行,每行包含一个查询。每个查询行由一个球队名称 $t_j$ 和一个整数 $k_j$ ($1 \le k_j \le N$) 组成。保证每个查询中的球队名称都存在于之前的分配列表中。
输出格式
输出 $Q$ 行。每行应包含对应查询的答案(按照它们在输入中出现的相同顺序)。如果第 $j$ 个查询是 $t_j$ 和 $k_j$,则第 $j$ 行输出应提供球队 $t_j$ 获得前 $k_j$ 个选秀顺位之一的概率。每个概率的相对误差必须小于 $10^{-6}$。
样例
输入样例 1
3 4 SUNS 2 NUGGETS 1 JAZZ 9 SUNS 1 SUNS 2 SUNS 3 NUGGETS 1 NUGGETS 2 NUGGETS 3 JAZZ 1 JAZZ 2 JAZZ 3
输出样例 1
0.571428571 0.895238095 1.0 0.285714286 0.714285714 1.0 0.142857143 0.39047619 1.0
输入样例 2
5 13 MAMMOTH 11 KNIGHTS 7 AVALANCHE 5 FLAMES 3 OILERS 9 MAMMOTH 1 MAMMOTH 2 MAMMOTH 3 MAMMOTH 4 MAMMOTH 5 KNIGHTS 1 AVALANCHE 2 FLAMES 3 OILERS 4
输出样例 2
0.333333333 0.613999767 0.825377659 1.0 1.0 0.282051282 0.381096028 0.476970929 0.306898614