编程题
### 问题描述
大灾难来袭,交通系统瘫痪,城市之间只能通过两站停一次的方式进行出行,即从城市 $a$ 出发,经过城市 $b$,最终到达城市 $c$,并支付 $(w_{ab}+w_{bc})^2$ 的车票费用。
现在有 $n$ 个城市和 $m$ 条单向道路,组成了一个有向图,每条道路都有价格 $w_{ij}$,表示城市 $i$ 与城市 $j$ 两个城市之间的车票费用。
小蓝所在的城市为 $A$ ,这时只有 $B$ 城市是安全的,你还剩下 $E$ 的钱。
他想知道他能否到达安全的地方,如果可以则输出 `Yes` ,反之输出 `No` 。
### 输入格式
第一行包含两个整数 $n$ 和 $m$($2 \leq n, m \leq 10^5$)。
第二行包含两个整数 $A, B$ ,表示小蓝现在所在的城市 $A$ ,和目前唯一安全的城市 $B$ 。
接下来的 $m$ 行,每行包含三个整数 $v_i$、$u_i$ 和 $w_i$($1 \leq v_i, u_i \leq n$,$1 \leq w_i \leq 50$,$u_i \neq v_i$),分别表示城市 $i$ 、城市 $j$ 以及两个城市之间的车票费用 $w_i$。
再接下来一行给定一个整数 $E$($1\leq E \leq 10^9$),表示你还剩下的钱。
### 输出格式
一行一个字符串:
- 若可以到达 $B$ 城市则输出 `Yes` 。
- 若不能到达 $B$ 城市则输出 `No` 。
### 输入样例
```text
5 10
1 4
2 1 3
1 2 4
3 2 3
3 4 5
4 5 2
1 5 5
5 1 2
2 4 2
1 5 2
2 3 3
40
```
### 输出样例
```text
Yes
```