BY 的抓颓计划 (BY's Slacker Purge Plan)
题目背景
继 PJY 在一场极其危险的博弈中落网后,严厉的 BY 老师把 PJY 给制裁了,并顺藤摸瓜,挖掘出了隐藏在班级底层的庞大“颓废联盟”网络! 为了彻底肃清班风,将这股不正之风连根拔起,BY 决定联合同为老师的 SD,开展一场名为“双线抓颓”的清剿行动。 而这场行动的起点,正是罪恶的源头——PJY 的座位!
题目描述
班级里共有 名同学(编号 ),每个人都有一个“颓废值” 。PJY 的编号为 。 颓废联盟内部有一套隐秘的传阅网络,由 条单向传播途径构成。一条从 到 的有向边,意味着如果查到了同学 ,BY 就可以顺着线索立刻查到同学 。
这群学生非常狡猾,他们的传播网络中可能存在环(互相包庇)。也就是说,如果 BY 发现了一群互相传阅形成环的学生,只要顺藤摸瓜抓到其中一个,就可以把这个环里(以及环能相互到达)的所有学生一网打尽。
现在,BY 和 SD 两位老师将同时从 PJY 的座位(节点 )出发,顺着传播网络(有向边)进行抓捕。
- 他们可以分开行动,走两条不同的路径,以覆盖更多的学生。
- 只要某名同学被 BY 或者 SD 抓到(或者因为同伙被抓而被一网打尽),老师们就能缴获他的颓废值 。
- 注意:如果一名同学被两位老师都抓到了,他的颓废值只能计算一次(即不重复计算)。
请你帮 BY 老师计算出,在最优的双线抓捕路线下,他们最多能缴获多少总颓废值?
输入格式
第一行包含三个整数 ,分别表示同学总数、单向传播途径的数量,以及起点 PJY 的编号。 第二行包含 个整数 ,表示每名同学的颓废值。 接下来 行,每行包含两个整数 ,表示存在一条从 到 的单向传播途径。
输出格式
输出一个整数,表示两位老师最多能缴获的总颓废值。
输入输出样例
输入样例 #1
6 7 1
10 20 30 40 50 60
1 2
2 3
3 1
1 4
4 5
1 6
6 5
输出样例 #1
210
说明/提示
起点 。 节点 构成了一个强连通分量(环)。只要到达其中任意一个,就能把 全部抓住,缴获 。 此时相当于两位老师都站在了这个巨大的“颓废窝点”上。 随后,BY 老师可以选择路线 ,抓获节点 4 和 5,额外缴获 。 MS 老师可以选择路线 ,抓获节点 6 和 5,额外缴获 。 节点 5 被两人同时抓到,只能计算一次(50)。 最终两人联合抓捕的节点集合为 ,总颓废值为 。
数据规模与约定
| Subtask | 分数 | 特殊性质 | ||
|---|---|---|---|---|
| 0 | 无 | |||
| 1 | 保证给定的图是一个 DAG(无环) | |||
| 2 | 无 |