#23. 挖地雷(dilei)

挖地雷(dilei)

Description

在一条河上有若干个地雷坑,每个地雷坑中埋有一定数量的地雷,地雷坑的编号为1、2、3、…、N(N<=100),如下表所示(N=10):

同时在每个地雷坑中都有一张说明书(除最后一个地雷坑以外)。说明书指出,在挖完此坑的地雷之后,还可以继续挖哪些坑。

如上图所示,在挖了第1坑的地雷之后,还可以继续挖2坑,或者4坑、5坑、7坑。在挖完2坑之后,还可以继续挖5坑,或者3坑、6坑。

挖地雷的规则为可以从任何一个地雷坑开始,到任何一个地雷坑结束。同时,在挖完某个地雷坑中的地雷之后,可以选择它可继续挖的地雷坑之一继续挖,但只能选择一种。例如:

从1坑开始,可挖到8枚地雷,挖完之后继续挖2号地雷坑,挖完之后,可挖到14枚。挖完2坑之后,还可以挖3号地雷坑,可挖到2枚。由于3号坑之后不存在链接,因此挖地雷结束。按照上面的方法,从1号地雷坑开始,到3号地雷坑结束,总共可挖到地雷数量为8+14+2=24枚。

同时,我们看到在挖完1号地雷坑中的地雷之后,可以选择4号地雷坑,在挖完4号地雷坑之后可以选择5号坑继续挖,在挖完5号坑之后可以选择6号坑继续挖,在挖完6号坑之后可以选择8号坑继续挖,在挖完8号坑之后可继续挖10号坑,在挖完10号坑之后,挖地雷结束。此时总共可挖地雷数量为8+17+33+26+17+6=107。

问题为:当地雷坑中的地雷数量以及后继关系给出之后,找出一个挖地雷的方法,能挖到最多的地雷。

Input

输入第一行为N(N<=100),表示地雷坑数。

第二行依次为每个地雷坑中埋有的地雷数量,之间用空格隔开。

以下N行为地雷坑之间的联系,1表示有通路,0表示无通路。

Output

第一行为能挖到最多的地雷数,第二行挖雷顺序,之间用空格隔开。

Sample Input

6

8 14 2 17 9 26

0 0 1 1 0 0

0 1 0 0 0

0 1 0 1

  0 0 0

    0 1

      0

Sample Output

42

2 3 6