#AT2440. D - Change Usernames

D - Change Usernames

当前没有测试数据。

D - 修改用户名

得分:400分

问题描述

你运营着一个拥有$N$个用户的网络服务。

第$i$个用户使用当前的用户名$S_i$,希望将其修改为$T_i$。
其中$S_1$,$\ldots$,$S_N$两两不同,$T_1$,$\ldots$,$T_N$也两两不同。

你需要确定是否存在一种适当的顺序来修改他们的用户名,以满足所有的请求,满足以下条件:

  • 每次只能修改一个用户的用户名;
  • 每个用户的用户名只能修改一次;
  • 当修改用户名时,新的用户名不能被其他用户使用。

约束条件

  • $1 \leq N \leq 10^5$
  • $S_i$和$T_i$是长度为$1$到$8$(含)的字符串,由小写英文字母组成。
  • $S_i \neq T_i$
  • $S_i$两两不同。
  • $T_i$两两不同。

输入

从标准输入中以如下格式给出:

NN

S1S_1 T1T_1

S2S_2 T2T_2

\vdots

SNS_N TNT_N

输出

如果可以按照条件修改他们的用户名,则输出Yes;否则输出No


2
b m
m d
Yes

第1个用户当前使用的用户名是b,希望将其修改为m
第2个用户当前使用的用户名是m,希望将其修改为d

首先,你将第2个用户的用户名从m修改为d; 然后,你将第1个用户的用户名从b修改为m。这样,你可以达到目标。

请注意,你不能首先将第1个用户的用户名修改为m,因为这个用户名在那个时刻被第2个用户使用了。


3
a b
b c
c a
No

第1个用户当前使用的用户名是a,希望将其修改为b
第2个用户当前使用的用户名是b,希望将其修改为c
第3个用户当前使用的用户名是c,希望将其修改为a

我们不能按照条件修改他们的用户名。


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