atcoder#ABC247B. [ABC247B] Unique Nicknames

[ABC247B] Unique Nicknames

配点 : 200200

問題文

11, 人 22, \dotsNNNN 人の人がいます。人 ii の姓は sis_i、名は tit_i です。

NN 人の人すべてにあだ名をつけることを考えます。人 ii のあだ名 aia_i は以下の条件を満たす必要があります。

  • aia_i は人 ii の姓あるいは名と一致する。言い換えると、ai=sia_i = s_i または ai=tia_i = t_i の少なくとも一方が成り立つ。
  • aia_i は自分以外の人の姓および名のどちらとも一致しない。言い換えると、1jN,ij1 \leq j \leq N, i \neq j を満たすすべての整数 jj について aisja_i \neq s_j かつ aitja_i \neq t_j が成り立つ。

NN 人全員に条件を満たすあだ名をつけることは可能でしょうか。可能ならば Yes を、そうでないならば No を出力してください。

制約

  • 2N1002 \leq N \leq 100
  • NN は整数である。
  • si,tis_i,t_i は英小文字からなる 11 文字以上 1010 文字以下の文字列である。

入力

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

NN

s1s_1 t1t_1

s2s_2 t2t_2

\vdots

sNs_N tNt_N

出力

NN 人すべてにあだ名をつけることが可能ならば Yes を、そうでないならば No を出力せよ。

3
tanaka taro
tanaka jiro
suzuki hanako
Yes

a1=a_1 = taro, a2=a_2 = jiro, a3=a_3 = hanako とすれば、これは問題文にあるあだ名の条件を満たしています。(a3a_3suzuki でもよいです。) ここで、a1=a_1 = tanaka とはできないことに注意してください。なぜならば 人 22 の姓 s2s_2 もまた tanaka であるため、あだ名の条件の 22 つ目を満たさなくなるからです。

3
aaa bbb
xxx aaa
bbb yyy
No

問題文の条件を満たすあだ名のつけ方は存在しません。

2
tanaka taro
tanaka taro
No

同姓同名である人の組が存在する場合もあります。

3
takahashi chokudai
aoki kensho
snu ke
Yes

a1=a_1 = chokudai, a2=a_2 = kensho, a3=a_3 = ke とすればよいです。