問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
このチャプターでは、グラフ理論における二分探索木を扱います。
二分探索木とは、根付き木の一種で、各頂点が持つ子の数が高々 2 であり、かつ、次の条件を満たすもののことを指します。
```
ある頂点の値 V と、その左右の子の値 V_L , V_R について「V_L < V < V_R」が全ての頂点について成り立つ。
```
例として、以下のような根付き木は二分探索木となります。
根付き木の頂点・辺についての情報が与えられるので、この根付き木が二分探索木かどうかを判定してください。
N R
a_1 b_1 LR_1
...
a_{N-1} b_{N-1} LR_{N-1}
・与えられた根付き木が二分探索木である場合には "YES" を、そうでない場合は "NO" を 1 行で出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 100
・1 ≦ R ≦ 100,000
・0 ≦ a_i , b_i ≦ 100,000 (1 ≦ i ≦ N-1)
・LR_i は 'L' または 'R'(1 ≦ i ≦ N-1)
・与えられる根付き木の高さは 20 未満であることが保証されている。
・a_i は「根の頂点の値」または「親の頂点が確定している頂点の値」であることが保証されている。
・与えられる木の中に同じ値が 2 つ以上含まれていないことが保証されている。
3 2
2 3 L
2 1 R
NO
5 6
6 3 L
6 8 R
3 1 L
3 5 R
YES