#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
统计
相关
在以下作业中: