AT_tkppc6_2_f Shortest Path Construction
Description
[problemUrl]: https://atcoder.jp/contests/tkppc6-2/tasks/tkppc6_2_f
しおむすび君は次のような問題を解いています。
> Paken 王国は $ N $ 個の街 $ 1,\ 2,\ \ldots,\ N $ と $ M $ 本の道路 $ 1,\ 2,\ \ldots,\ M $ からなります。 道路の情報を表す長さ $ M $ の数列 $ A,B,C $ が与えられていて、道路 $ i $ は街 $ A_i $ と街 $ B_i $ を双方向に結び、通るのに $ C_i $ のコストがかかります。
>
> Paken 王国では、技術室奥プログラミングコンテスト#6の開催に合わせて $ N $ 日間に渡りイベントを開催します。 $ i $ 日目には街 $ i $ でイベントが開催されるので、街 $ i $ に行く必要があります。 $ i\ =\ 1,\ 2,\ \ldots,\ N $ について、 $ i $ 日目に街 $ 1 $ から街 $ i $ を通り街 $ N $ まで移動するのにかかるコストの合計の最小値を求めて下さい。 ただし、頂点 $ 1,N $ も含め同じ頂点や同じ道路を複数回通ってもいいものとします。
しおむすび君にかかればこの問題は簡単です。 しおむすび君は $ i\ =\ 1,\ 2,\ \ldots,\ N $ それぞれについて、 $ i $ 日目の答えが $ D_i $ であると分かりました。
しかししおむすび君は抜けているところがあるので、 $ A,\ B,\ C $ が何であったか忘れてしまいました。 しおむすび君のために $ A,\ B,\ C $ として考えられるものを $ 1 $ つ見つけてあげてください。
ただし、そのようなものが存在しないときは、それを報告してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ D_1 $ $ D_2 $ $ \ldots $ $ D_N $
Output Format
条件を満たす $ A,\ B,\ C $ が存在しない場合、一行に `No` と出力せよ。存在する場合、以下の形式で出力せよ。
> Yes $ A_1 $ $ B_1 $ $ C_1 $ $ A_2 $ $ B_2 $ $ C_2 $ $ \vdots $ $ A_M $ $ B_M $ $ C_M $
ただし、これは以下の制約を満たす必要がある。
- $ 1\ \leq\ A_i\
Explanation/Hint
### 制約
- $ 1\ \leq\ N,M\ \leq\ 10^5 $
- $ 0\ \leq\ D_i\ \leq\ 10^9 $ $ (1\ \leq\ i\ \leq\ N) $
- 入力は全て整数
### Sample Explanation 1
この出力例では、例えば $ 3 $ 日目に移動にかかるコストが最小になる経路は、道路 $ 2,\ 6,\ 7 $ を順に通るものになります。 道路を移動するのにかかるコストはそれぞれ $ 2,\ 3,\ 1 $ なので、合計で $ 6 $ のコストがかかります。
### Sample Explanation 3
条件を満たす $ A,\ B,\ C $ は存在しません。 原案: \[shiomusubi496\](https://atcoder.jp/users/shiomusubi496)