TeraCoder2025
コンテスト日時
2025/12/27 (Sa) 14:00 - 15:30

G - Barn Owl Terako

Assam
2
s
1024
MB
200

問題文

$1$ から $N$ までの番号が振られた $N$ 個の地点があります。

また、M本の道があり、$i$ 番目 $(1 \le i \le M)$ の道は地点 $a_i$ と地点 $b_i$ を結び、傾斜は $r_i$ あります。これらの道は双方向に移動可能です。

地点 $1$ にいる寺子さんは地点 $N$ にいる庵流くんに伝えたいことがあるため、地点 $N$ に行くことにしました。

寺子さんは道 $i$ を通るたびに $r_i$ 回「EHHO」と発言します。寺子さんはそれを言うのが恥ずかしいので、少ない発言で庵流君のところに行きたいと思っています。

寺子さんが最小の発言で庵流君のところに到着するよう道を選んだ時、発言した文字を出力してください。

制約

  • $2 \le N \le 10^5$
  • $N-1 \le M \le min(10^6, \frac{N(N-1)}{2})$
  • $1 \le a_i, b_i \le N$
  • $1 \le r_i \le 90$
  • 入力は全て整数
  • 任意の地点から任意の地点へ道を通って移動可能

入力

$N~~M$

$a_1~~b_1$$~~r_1$

$a_2~~b_2$$~~r_2$

$\vdots$

$a_M~~b_M$$~~r_M$

出力

寺子さんが「EHHO」と言う回数を $E$ として、$E$ 行 EHHO を出力してください。

$\verb|EHHO|$
$\verb|EHHO|$
$\vdots$
$\verb|EHHO|$

入力例 1
4 4 1 2 10 2 4 10 1 3 5 3 4 5
出力例 1
EHHO EHHO EHHO EHHO EHHO EHHO EHHO EHHO EHHO EHHO

最短経路は $1 \to 3 \to 4$ で、傾斜の和は $5 + 5 = 10$ です。
なので、EHHO を $10$ 回出力します。

入力例 2
2 1 1 2 1
出力例 2
EHHO

地点 $1$ から地点 $2$ へ行くには道 $1$ を通るしかなく、傾斜は $1$ です。
なので、EHHO を $1$ 回出力します。

入力例 3
5 6 1 2 2 2 3 2 3 5 2 1 4 5 4 5 5 2 4 1
出力例 3
EHHO EHHO EHHO EHHO EHHO EHHO

最短経路は $1 \to 2 \to 3 \to 5$ で、傾斜の和は $2 + 2 + 2 = 6$ です。
なので、EHHO を $6$ 回出力します。

提出
C++23 (g++ 12.2.0)