#4515. Change Usernames

0

Change Usernames

Change Usernames

题目描述

你运营着一个有 NN 名用户的网络服务。 第 ii 个用户当前的用户名是 SiS_i,希望将其改为 TiT_i。
其中 S1,…S_1,\ldots 和 SNS_N 两两互不相同,T1,…T_1,\ldots 和 TNT_N 也两两互不相同。 判断是否存在合适的顺序来更改他们的用户名以满足所有请求,满足以下条件:

一次只更改一个用户的用户名; 每个用户只更改一次; 在更改用户名时,新的用户名在该时刻不得被其他用户使用。

输入格式

输入从标准输入给出,格式如下: NN S1S_1 T1T_1 S2S_2 T2T_2 ⋮\vdots SNS_N TNT_N

输出格式

如果可以在满足条件的情况下完成所有用户名更改,则输出 YesYes;否则输出 NoNo。

2
b m
m d
Yes
3
a b
b c
c a
No
5
aaa bbb
yyy zzz
ccc ddd
xxx yyy
bbb ccc
Yes

提示

1≤N≤1051 \leq N \leq 10^5 SiS_i 和 TiT_i 是长度在 11 到 88(含)之间、由小写英文字母组成的字符串。 Si≠TiS_i \neq T_i SiS_i 两两互不相同。 TiT_i 两两互不相同。第 11 个用户当前的用户名为 bb,希望改为 mm。
第 22 个用户当前的用户名为 mm,希望改为 dd。 首先,将第 22 个用户的用户名从 mm 改为 dd; 然后将第 11 个用户的用户名从 bb 改为 mm。这样就可以达到目标。 注意不能先把第 11 个用户的用户名改为 mm,因为此时它被第 22 个用户使用着。
第 11 个用户当前的用户名为 aa,希望改为 bb.
第 22 个用户当前的用户名为 bb,希望改为 cc.
第 33 个用户当前的用户名为 cc,希望改为 aa。 在满足条件的情况下,无法更改他们的用户名。

标签: AtCoder|abc285D

来源

AtCoder|abc285D