#6924. 试题G:故障

试题G:故障

Background

在软件或系统开发中,我们会遇到各种各样的故障。为了从故障现象反推故障原因,工程师们会总结一种叫做相关性矩阵的二维表格,来表示故障原因与故障现象之间的关系。比如:

image

其中每行表示一种故障原因,每一列表示一种故障现象。该矩阵表示故障原因A可能产生故障现象2、3、4,故障原因B可能产生故障现象1、3。

在实际开发过程中,如果出现了故障原因,工程师就可以根据故障现象,去计算每种故障原因产生的概率,并按照概率大小对故障原因进行排查,以达到快速定位故障原因的目的。

Description

现在,我们假设系统开发中同一时间只会出现一种故障原因,并且故障原因引起各故障现象是独立事件。举个例子来说:

假设系统现在发生了故障原因A有13\frac{1}{3}的概率出现故障现象2,有14\frac{1}{4}的概率出现故障现象3,有12\frac{1}{2}的概率出现故障现象4。由于3种现象是独立发生的,因此有12×3×4\frac{1}{2×3×4}的概率同时出现故障2、3、4。

约定若相关性矩阵中没有‘x'记号,则表示该故障原因一定不会产生某故障现象,比如故障原因A,一定不会产生故障现象1。

根据历史经验数据,我们统计得到了每一种故障原因出现的概率以及每一种故障原因对应的故障现象产生概率。

现在已知系统出现的故障现象,求问各个故障原因发生的概率。

Format

Input

第1行:2个正整数N,M,N表示故障原因的个数(编号1...N),M表示故障现象的个数(编号1...M)

第2行:n个整数,第i个数表示故障原因i产生的概率PiP_i.

第N+3行:1个正整数K,表示目前出现的故障现象数量

第N+4行:K个正整数,依次为当前出现的故障现象编号,不会重复

Output

第1...N行:按概率从高到低输出每种故障原因及其可能的概率,若出现概率相同则优先输出编号小的故障原因。第1个数为故障原因编号,第2个数为故障概率(百分比),保留2位小数。

Samples

3 5
30 20 50
0 50 33 25 0
30 0 35 0 0
0 0 0 25 60
1
3
2 56.89
1 43.11
3 0.00

Limitation

对于所有测试用例,1≤N ≤40,1 ≤M ≤ 20,0 ≤PiP_i ≤ 100,Pi\sum{{P_i}}=100,0≤Pi,jP_{i,j} ≤100