atcoder#ABC285D. [ABC285D] Change Usernames

[ABC285D] Change Usernames

配点 : 400400

問題文

あなたの運営する Web サービスには NN 人のユーザがいます。

ii 番目のユーザの現在のユーザ名は SiS_i ですが、TiT_i への変更を希望しています。 ここで、S1,,SNS_1,\ldots,S_N は相異なり、T1,,TNT_1,\ldots,T_N も相異なります。

ユーザ名を変更する順序を適切に定めることで、以下の条件を全て満たすように、全てのユーザのユーザ名を希望通り変更することができるか判定してください。

  • ユーザ名の変更は 11 人ずつ行う
  • どのユーザもユーザ名の変更は一度だけ行う
  • ユーザ名の変更を試みる時点で他のユーザが使っているユーザ名に変更することはできない

制約

  • 1N1051 \leq N \leq 10^5
  • Si,TiS_i,T_i は英小文字からなる 11 文字以上 88 文字以下の文字列
  • SiTiS_i \neq T_i
  • SiS_i は相異なる
  • TiT_i は相異なる

入力

入力は以下の形式で標準入力から与えられる。

NN

S1S_1 T1T_1

S2S_2 T2T_2

\vdots

SNS_N TNT_N

出力

条件を全て満たすように全てのユーザのユーザ名を希望通り変更することができるとき Yes、できないとき No と出力せよ。

2
b m
m d
Yes

11 番目のユーザの現在のユーザ名は b であり、m への変更を希望しています。 22 番目のユーザの現在のユーザ名は m であり、d への変更を希望しています。

まず、22 番目のユーザのユーザ名を m から d に変更し、 その後 11 番目のユーザのユーザ名を b から m に変更することで、条件を満たしながら変更することができます。

最初の時点では 22 番目のユーザのユーザ名が m なので、11 番目のユーザのユーザ名を同じ m に変更することはできません。

3
a b
b c
c a
No

11 番目のユーザの現在のユーザ名は a であり、b への変更を希望しています。 22 番目のユーザの現在のユーザ名は b であり、c への変更を希望しています。 33 番目のユーザの現在のユーザ名は c であり、a への変更を希望しています。

条件を満たしながらユーザ名の変更を行うことはできません。

5
aaa bbb
yyy zzz
ccc ddd
xxx yyy
bbb ccc
Yes