atcoder#ABC285D. [ABC285D] Change Usernames
[ABC285D] Change Usernames
题目描述
あなたの運営する Web サービスには 人のユーザがいます。
番目のユーザの現在のユーザ名は ですが、 への変更を希望しています。
ここで、 は相異なり、 も相異なります。
ユーザ名を変更する順序を適切に定めることで、以下の条件を全て満たすように、全てのユーザのユーザ名を希望通り変更することができるか判定してください。
- ユーザ名の変更は 人ずつ行う
- どのユーザもユーザ名の変更は一度だけ行う
- ユーザ名の変更を試みる時点で他のユーザが使っているユーザ名に変更することはできない
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
条件を全て満たすように全てのユーザのユーザ名を希望通り変更することができるとき Yes
、できないとき No
と出力せよ。
题目大意
有 个用户,每个用户有一个用户名 现在每个用户都想改成另一个用户名 ,如果一个用户想要改的名字没有人正在用,那么这个用户可以改名。现在用户改名的顺序由你决定,请问是否所有用户都可以成功改名。
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
提示
制約
- は英小文字からなる 文字以上 文字以下の文字列
- は相異なる
- は相異なる
Sample Explanation 1
番目のユーザの現在のユーザ名は b
であり、m
への変更を希望しています。 番目のユーザの現在のユーザ名は m
であり、d
への変更を希望しています。 まず、 番目のユーザのユーザ名を m
から d
に変更し、 その後 番目のユーザのユーザ名を b
から m
に変更することで、条件を満たしながら変更することができます。 最初の時点では 番目のユーザのユーザ名が m
なので、 番目のユーザのユーザ名を同じ m
に変更することはできません。
Sample Explanation 2
番目のユーザの現在のユーザ名は a
であり、b
への変更を希望しています。 番目のユーザの現在のユーザ名は b
であり、c
への変更を希望しています。 番目のユーザの現在のユーザ名は c
であり、a
への変更を希望しています。 条件を満たしながらユーザ名の変更を行うことはできません。