A. 【GENOIP#57】精神焕发(huan)

1.5 s
512 MB

题目背景

行末不要输出空格

击败一个生物可减少治疗药水的冷却时间,让你能更快地再次治疗。 -- 某垃圾游戏

题目描述

给出一棵 $n$ 个点的树,点从 $1$ $n$ 编号。每个点 $u$ 上有足够多瓶加血 $w_u$ 的药水,如果原来你的血量为 $x$ ,那么喝下这瓶药水后你的血量会变为 $x+w_u$

$q$ 次询问。每次询问给出数 $x$ 与两个点的编号 $s$ $t$

这次询问中,你的初始血量为 $x$ ,一开始在 $s$ ,想要走到 $t$ 。每次走到一个点,你就会喝下这个点上的药水(一开始来到点 $s$ 时会喝下 $s$ 上的药水)。你可以多次经过一个点,每次经过时都会喝下一瓶这个点上的药水。如果某个时刻你的血量小于 $0$ ,那么你就死了。你想知道你是否可以在不死的情况下从 $s$ 走到 $t$

更形式化地,你需要判断是否存在一个点的编号组成的序列 $p_{1 \dots k}$ ,满足:

$p_1=s$ $p_k=t$ ; 对于任意 $i \in [1,k-1]$ ,树上的点 $p_i$ $p_{i+1}$ 之间有一条边。 对于任意 $i \in [1,k]$ ,有 $x+\sum_{j=1}^i w_{p_j} \ge 0$ $p$ 的长度 $k$ 可以由你决定,并且 $p$ 中可以存在相同的元素。

输入格式

输入格式 输入的第一行包含两个数 $n$ $q$

第二行包含 $n$ 个数 $w_{1..n}$

接下来 $n-1$ 行,每行包含两个数 $u$ $v$ ,表示树中存在连接点 $u$ 与点 $v$ 的一条边。

接下来 $q$ 行,每行包含三个数 $x$ $s$ $t$ ,表示一组询问,保证 $s\neq t$

输出格式

输出格式 输出应包含 $q$ 行,第 $i$ 行包含一个字符串 Yes 或 No,表示第 $i$ 次询问的答案。

样例 1

输入 复制
5 4
-2 0 -4 1 0
1 2
2 3
2 4
1 5
4 3 2
3 3 2
2 5 1
1 5 1
输出 复制
Yes
No
Yes
No

数据范围与提示

数据范围 对于 $30\%$ 的数据, $q\le 10$ 。 对于 $100\%$ 的数据, $1\le n, q\le 10^6$ $|w_i|\le10^9$ $0\le x\le 10^{18}$

样例

OI
比赛已结束