#CF1932G. G. 移动平台
G. 移动平台
G. 移动平台
每个测试点时间限制:3 秒
内存限制:512 兆字节
有一个游戏,你需要在迷宫中移动。迷宫由 个平台组成,平台之间有 条通道。
每个平台有一个整数等级 ,取值范围是 到 。
在一步操作中,如果你当前在平台 上,你可以选择停留在这个平台,或者移动到另一个平台 。
要移动到平台 ,需要满足:
- 平台 和 之间有通道相连;
- 且它们的当前等级相同,即 。
每执行一步操作后,所有平台的等级都会发生变化。
平台 的新等级按如下方式计算:
对所有 都成立。
你从平台 出发。请找到到达平台 所需的最少步数。
输入
第一行包含一个整数 ()——测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含三个整数 (,,)。
第二行包含 个整数 ,表示每个平台的初始等级()。
第三行包含 个整数 ,表示每个平台的等级变化值()。
接下来 行,每行描述一条通道。每条通道由两个整数表示——相连的平台编号。
每对平台之间最多有一条通道,且没有平台到自身的通道。
所有测试用例的 之和不超过 ,所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一个整数,表示从平台 到平台 所需的最少步数。
如果无法到达平台 ,则输出 。
示例
输入
3
3 3 10
1 9 4
2 3 0
1 2
3 2
1 3
2 1 10
1 2
4 6
1 2
8 7 25
22 14 5 3 10 14 11 1
9 5 4 10 7 16 18 18
2 8
6 3
3 5
7 5
2 6
1 4
4 7
输出
6
-1
52
示例解释(第一个测试用例)
| 步骤 | 平台 1 等级 | 平台 2 等级 | 平台 3 等级 | 动作 |
|---|---|---|---|---|
| 初始 | ||||
| 步 1 | 停留在平台 1 | |||
| 步 2 | ||||
| 步 3 | 移动到平台 2 | |||
| 步 4 | 停留在平台 2 | |||
| 步 5 | ||||
| 步 6 | 移动到平台 3 | |||