#607. 一轮在爬塔
一轮在爬塔
题目描述
一轮正在玩杀戮尖塔,游戏的地图可以看成有 个点和 条边组成的有向无环图,一轮初始有 点血量。
每个节点上都有一个事件,当一轮到达该节点时,会根据事件效果增加或减少一定血量。
一轮必须选择一个入度为零的节点作为起点,并到达一个出度为零的节点作为终点。
在行进过程中,如果一轮的血量在任何时刻小于等于 ,则一轮失败。一轮需要找到一条从起点到终点的路径,使得最终血量尽可能大。
请你计算一轮游戏结束时最多能有多少血量。如果不存在任何有效路径(即从任意起点出发都会中途死亡导致无法到达任何终点),则输出 。
输入格式
第一行包含三个整数 , , ,分别表示节点数、边数和初始血量。
第二行包含 个整数 ,其中 表示第 个节点的事件值(正数表示回血,负数表示扣血)。
接下来 行,每行包含两个整数 , ,表示一条从 指向 的有向边。数据保证图是有向无环图。
输出格式
输出一个整数,表示游戏结束时一轮的最大血量。如果不存在有效路径,输出 。
3 2 5
-10 -5 1
1 2
2 3
-1
解释 #1
很明显一轮只能进入节点 ,然后血量就归零了,所以输出 。
数据范围
相关
在下列比赛中: