#P2672. Hotkeys
Hotkeys
描述
正在为测试编辑器设计一个菜单系统。菜单由一些菜单项组成,每个菜单项可以递归地包含一些子菜单项(一个子菜单项也是一个菜单项),例如,菜单项 可能包含子菜单项 和 ,而 “Recent Files” 可能包含 “Setting File”,“Send” 可能包含 和。一个 可能包含多个单词,并确认每个单词中的第一个字母是大写字母,其他字母都是小写字母。
每个 都与一个热键相关联,如果热键更容易记住,则菜单更易于使用。因此,希望热键在 中只能是大写字母,即每个单词中的第一个字母。以 为例,热键只能是 或 。很明显,菜单项的子菜单项不能与同一个热键关联,例如,“保存”和“另存为”不能同时使用热键,因为它们都是菜单“文件”的子菜单项。
由于 认为按同一个键两次不方便,因此他要求 及其子菜单项的热键不能重复。在前面的示例中,(文件)和(最近使用的文件)不能使用相同的热键。但是这个规则只影响 和它的直接子,所以 和 可以使用相同的热键 。
给定菜单描述后, 想知道是否可以为每个菜单项分配一个热键。
输入
菜单描述如下:占据一行,并且 的子 列在此菜单项的正下方。子菜单项的描述以第一个子菜单项之前的 开头,在最后一个子菜单项之后以 结尾。 和 将单独占一整行。由于我们可能认为顶层的菜单项属于全局菜单,因此在输入的开头总是有一个 ,在输入的末尾总是有一个。
每个 可以包含单词和分隔它们的空格。名称的长度少于 个字符。
菜单项不超过 个。确认所有输入都是上述合法的菜单项。
输出
如果可以为每个菜单项分配一个热键,则单行包含 ;否则,输出 。
输入数据 1
<
File
<
Open
Save
Save As
Recent Files
Send
<
Mail
Fax
>
Exit
>
Edit
<
Find
Replace
Replace All
>
>
输出数据 1
No Solution
来源
北京 预选赛