#2481. Change Usernames

Change Usernames

[ABC285D] Change Usernames

题目描述

你运营着一个网络服务,该服务有 NN 名用户。

ii 个用户的当前用户名是 SiS_i,但他希望将其更改为 TiT_i。 在这里,S1,,SNS_1, \ldots, S_N 是不同的,T1,,TNT_1, \ldots, T_N 也是不同的。

通过适当地确定更改用户名的顺序,判断是否可以满足以下所有条件,将所有用户的用户名更改为他们希望的用户名:

  • 用户名的更改每次只能进行一个用户
  • 每个用户只能更改一次用户名
  • 在尝试更改用户名时,不能更改为其他用户正在使用的用户名

输入格式

输入将以以下格式从标准输入中给出。

N
S_1 T_1
S_2 T_2
...
S_N T_N

输出格式

如果能够满足所有条件并按用户希望的方式更改所有用户名,请输出 Yes;如果不能,请输出 No

样例 #1

样例输入 #1

2
b m
m d

样例输出 #1

Yes

样例 #2

样例输入 #2

3
a b
b c
c a

样例输出 #2

No

样例 #3

样例输入 #3

5
aaa bbb
yyy zzz
ccc ddd
xxx yyy
bbb ccc

样例输出 #3

Yes

提示

制約

  • 1N1051 \leq N \leq 10^5
  • Si,TiS_i, T_i 是由小写英文字母组成的,长度在 1 到 8 个字符之间的字符串
  • SiTiS_i \neq T_i
  • SiS_i 是不同的
  • TiT_i 是不同的

Sample Explanation 1

第一个用户的当前用户名是 b,他希望更改为 m。第二个用户的当前用户名是 m,他希望更改为 d。首先,将第二个用户的用户名从 m 更改为 d,然后更改第一个用户的用户名从 bm,这样可以在满足条件的情况下进行更改。最初,第二个用户的用户名是 m,因此不能将第一个用户的用户名更改为相同的 m

Sample Explanation 2

第一个用户的当前用户名是 a,他希望更改为 b。第二个用户的当前用户名是 b,他希望更改为 c。第三个用户的当前用户名是 c,他希望更改为 a。无法在满足条件的情况下更改用户名。