问题 2104. -- 扫雷

2104: 扫雷

时间限制: 1 Sec  内存限制: 128 MB
提交: 2  解决: 0
[提交][状态][讨论版]

题目描述

【问题描述】二战时期为了打击日寇,各国的许多公路上埋有各种各样的地雷。二战胜利后需要清除埋雷区域。其中在一条公路上有n个埋雷区域(n≤200),每个雷区埋有若干颗地雷,为了安全起见:
(1)先有探测工兵确定:每个雷区地雷数,雷区的位置和下一个可扫的雷区位置连接等信息;
(2)然后安排扫雷兵扫雷,并规定:①扫雷兵可从任意位置起扫雷,扫完当前雷区全部地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径);②挖雷的过程中不允许扫雷兵重复经过雷区,且按单向路径扫雷,直到没有后续连接时扫雷工作结束。同时扫雷时必须扫完同一雷区的全部地雷,然后标上已扫完记号,探测工兵的信息保留;③扫雷方式是先按排一个扫雷兵,当他完成他的扫雷任务后,再安排下一个扫雷兵继续扫雷,…,直到公路上所有地雷被清除。
问:假如你是第一个扫雷兵,最多能在这条公路上扫除多少颗地雷?

输入

有若干行,格式是:
n    //雷区的个数
w1 w2 w3 … wn      //n个整数,用一个空格分隔开,是每个雷区包含的地雷数,且1<wi<=100
x1 y1      //表示从x1雷区可到y1雷区
x2  y2      //表示从x2雷区可到y2雷区

0 0        //表示输入结束。 

输出

只有一行,一个数,即最多可扫雷数。

样例输入

6
5 10 20 5 4 5
1 2
1 4
2 4
3 4
4 5
4 6
5 6
0 0

样例输出

34

提示

【数据规模】 30%的数据中,1< n <= 10;70%的数据中,1< n <= 100;100%的数据中,1< n <= 200。

来源

[提交][状态]