#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$两两不同。
输入
从标准输入中以如下格式给出:
输出
如果可以按照条件修改他们的用户名,则输出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