问题 6115 --我们是地火

6115: 我们是地火

时间限制: 5 Sec  内存限制: 256 MB
提交: 19  解决: 7
[提交][状态][命题人:]

题目描述

她习惯了人们失去家园,
也习惯了人们失去生命,
但一个人时,哭泣也无用。
「系上这条红丝巾,分担彼此痛苦。」
「我们是一家人…我们是地火。」
当宽阔的手掌抚上她的脑袋,她终于忍不住掉下眼泪。

在铆钉镇的孤儿院内,院长在给小朋友们上物理课。
当物体从高处飞下时,势能减少,动能增加。当物体从低处抛向高处时,动能减少,势能增加。

一个小球在在凹凸起伏的光滑地面滚动,初始动能为 e 。地面上有 n 个标记点和 m 条通道,每条通道连接两个标记点。每个标记点具有一定高度,小球在不同高度的势能不同,第 i 个标记点具有参数 h[i] 。
当小球从第 i 个标记点滚动到第 j 个标记点时,动能会减少 h[j]-h[i] (若 h[j]-h[i] 为负数,则表示增加 |h[j]-h[i]|),势能会增加 h[j]-h[i] (若 h[j]-h[i] 为负数,则表示减少 |h[j]-h[i]|)。
任何时候,动能都不能低于 0 。
求小球能否从 s 点滚动到 t 点。

输入

第一行包含一个整数 T (1≤T≤10^4) ,表示数据组数。
每组数据第一行包含两个正整数 n,m (2≤n≤3·10^5, 1≤m≤min(n(n-1)/2,2·10^5)) ,表示标记点数和通道数。
每组数据第二行包含 n 个整数 h[1],h[2],...,h[n] (1≤h[i]≤10^9) ,表示每个标记点的高度参数。
每组数据接下来 m 行,每行包含两个整数 u,v (1≤u,v≤n, u≠v) ,表示有一条通道连接标记点 u 和标记点 v 。
每组数据第 3+m 行,包含一个整数 q (1≤q≤2·10^5) ,表示询问次数。
每组数据最后 q 行,每行包含三个整数 s,t,e (1≤s,t≤n, 0≤e≤10^9) ,表示该次询问的起点、终点和初始能量。

保证所有数据的 n,m,q 各自之和,均不超过 2·10^5 。

输出

每个询问输出一行表示答案,若小球可以从 s 点滚动到 t 点,则输出 "YES" ,否则输出 "NO" (不包含引号)。
每组数据间,还需输出一个空行,如样例所示。
样例输入
Copy
样例1:
2
7 7
1 5 3 4 2 4 1
1 4
4 3
3 6
3 2
2 5
5 6
5 7
5
1 1 3
6 2 0
4 7 0
1 7 4
1 7 2
6 5
4 7 6 2 5 1
1 3
5 3
1 5
2 4
6 2
5
1 5 1
1 3 1
1 2 1000
6 2 6
6 2 5

样例2:
2
3 2
1 3 9
1 2
2 3
5
1 1 1
3 2 2
1 1 2
3 3 0
1 2 1
3 3
1 4 1
1 2
2 3
1 3
5
3 3 9
1 3 6
1 1 2
3 3 6
3 3 4

样例3:
1
6 10
7 9 2 10 8 6
4 2
6 1
4 5
3 5
6 4
1 3
2 6
6 5
1 2
3 6
5
4 4 8
3 3 1
5 5 9
2 1 7
6 6 10
样例输出
Copy
样例1:
YES
NO
YES
YES
NO

YES
NO
NO
YES
NO

样例2:
YES
YES
YES
YES
NO

YES
YES
YES
YES
YES

样例3:
YES
YES
YES
YES
YES

提示

来源

[提交][状态]