CF508D Tanya and Password
题目描述
在爸爸上班的时候,小女孩 Tanya 决定玩弄一下爸爸的秘密数据库密码。爸爸的密码是一个包含 $n+2$ 个字符的字符串。她把密码所有可能的 $n$ 个连续三字母子串都写在小纸条上,每个子串出现几次就写几次,然后把密码扔了。每张纸条上都只写了一个出现在密码里的三字母子串。
之后 Tanya 忽然意识到如果爸爸知道她玩的这个游戏会生气,于是决定尝试复原密码,或者至少还原出一个能对应这些子串集合的字符串。你需要帮她完成这项艰巨的任务。已知爸爸的密码只包含大小写拉丁字母和数字。大小写字母视为不同字符。
输入格式
第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^{5}$),表示 Tanya 得到的三字母子串的数量。
接下来的 $n$ 行每行包含三个字符,表示爸爸密码的一个子串。输入中的每个字符为小写字母、大写字母或数字。
输出格式
如果 Tanya 在游戏过程中出现了错误,导致不存在能由这些子串组成的字符串,则输出 “NO”。
如果存在可能的原始密码字符串,请输出 “YES”,并在下一行输出任意一个满足条件的密码字符串。
说明/提示
由 ChatGPT 5 翻译