现在很多操作系统的文件系统都是基于树形结构设计的。 即一个目录下可以有若干个目录和文件,而每个目录和文件都可以通过一条从根目录出发的唯一路径来唯一确定。 我们希望你实现对这样的一个文件系统的简单管理。 为了简化问题,我们做出如下假设: 假设文件系统初始时只有一个根目录 $root$。 假设所有出现的文件和目录的名字都是唯一的。 即,不会有两个相同名字的文件出现,不会有两个相同名字的目录出现,也不会有一个文件和一个目录名字相同。 文件名字和目录名字都是长度在 $1$ 到 $20$ 之间的字符串(包括 $1$ 和 $20$),且只由英文大写字母、英文小写字母、数字组成。 大小写字母之间不等效。 你需要实现如下操作: $CREATEFILE$ $FILENAME$ $DIRNAME$ 这个操作的含义是:在 $DIRNAME$ 的目录下创建一个名字为 $FILENAME$ 的文件。 我们保证当出现这个操作时,$DIRNAME$ 是一个已经存在的目录,而 $FILENAME$ 这个名字是首次出现。 $CREATEDIR$ $DIRNAME1$ $DIRNAME2$ 这个操作的含义是:在 $DIRNAME2$ 的目录下创建一个名字为 $DIRNAME1$ 的目录。 我们保证当出现这个操作时,$DIRNAME2$ 是一个已经存在的目录,而 $DIRNAME1$ 这个名字是首次出现。 $LISTFILE$ $DIRNAME$ 这个操作的含义是:按照创建的先后顺序打印出 $DIRNAME$ 目录下的所有文件名字。 我们保证当出现这个操作时,$DIRNAME$ 是一个已经存在的目录。 $LISTDIR$ $DIRNAME$ 这个操作的含义是:按照创建的先后顺序打印出 $DIRNAME$ 目录下的所有目录名字。 我们保证当出现这个操作时,$DIRNAME$ 是一个已经存在的目录。 输入格式 第一行有一个整数 $T$,表示一共有 $T$ $(T \leq 20)$ 组数据需要你处理。 请注意各组数据之间是相互独立的。 每当处理新的一组数据时,你都应当假设此时只有一个名字为 $root$ 的根目录存在。 对于每组数据,第一行有一个整数 $N$ $(0 < N \leq 100)$,表示有 $N$ 个操作需要你处理,接下来的 $N$ 行,每一个行描述了一个操作。 输出格式 对于每个 $LISTFILE$ 操作和 $LISTDIR$ 操作,如果找到了 $X$ 个文件(或目录),你需要输出 $X$ 行,按照创建时间从早到晚的顺序,每一行打印一个文件(或目录)的名字。 如果找到了 $0$ 个文件(或目录),就不要输出任何东西。 请注意不要输出多余的空格和换行符。 输入样例 2 8 CREATEFILE desktop root CREATEDIR DESKTOP root LISTFILE root LISTDIR DESKTOP CREATEFILE scr20130412 DESKTOP CREATEFILE scr20130411 DESKTOP CREATEFILE scr20130413 DESKTOP LISTFILE DESKTOP 5 LISTFILE root CREATEDIR webapp root CREATEDIR myweb webapp CREATEDIR MyWeb webapp LISTDIR webapp 输出样例 desktop scr20130412 scr20130411 scr20130413 myweb MyWeb