#arc041d. [arc041_d]辺彩色
[arc041_d]辺彩色
問題文
個の頂点と 本の辺からなる無向グラフが与えられる。 グラフは連結で、自己ループや多重辺を含まない。 辺は から まで番号が振られている。
はじめ、辺には色が塗られていない。 高橋君は () 番目の辺に色 が塗られているようにしたい。 ただし、 は r
(赤)または b
(青)である。 高橋君は次のようにして辺に色を塗る。
- まず、好きな頂点を始点に選ぶ。以降、「隣接する頂点へ移動する」というステップを好きなだけ繰り返す。
- 各ステップごとに使われた辺に色を塗る。このとき、奇数回目のステップでは赤を塗り、偶数回目のステップでは青を塗る。
- 既に色が塗られている辺に色を塗ると、新しい色で上書きされる。
すべての辺に目標の色が塗られているようにできるか判定せよ。
入力
入力は以下の形式で標準入力から与えられる。
:
- 行目には、頂点の個数 () と辺の本数 () が空白区切りで与えられる。
- 行目からの 行には、辺の情報が与えられる。このうち 行目には、整数 , () と色 が空白区切りで与えられる。これは次のことを表す。
- 番目の辺が頂点 と頂点 を結んでいる。ただし、 ならば または を満たす。
- 番目の辺に色 が塗られているようにしたい。ただし、 は
r
(赤)またはb
(青)である。
- グラフは連結である。
出力
すべての辺に目標の色が塗られているようにできるならば Yes
を、できないならば No
を 行に出力せよ。 出力の末尾に改行を入れること。
入力例1
6 5
1 2 r
2 3 b
3 4 r
4 5 b
5 6 r
出力例1
Yes
例えば、頂点 を始点に選び、図のようにして辺に色を塗ればよい。
入力例2
4 3
1 2 r
1 3 r
1 4 r
出力例2
Yes
例えば、頂点 を始点に選び、図のようにして辺に色を塗ればよい。上書きされる色は破線で示している。
入力例3
3 3
1 2 b
1 3 b
2 3 b
出力例3
No