CF158C Cd and pwd commands

题目描述

Vasya 正在编写一个操作系统的 shell,需要实现与目录操作相关的命令。为此,他决定先实现两个命令:cd(切换当前目录)和 pwd(显示当前目录)。 在 Vasya 的操作系统中,目录结构采用传统的树状层次结构。只有一个根目录,用斜杠“/”表示。其它每一个目录都有一个名称,即由小写拉丁字母组成的非空字符串。每个目录(根目录除外)都有一个父目录,也就是包含该目录的目录。父目录用“..”表示。 cd 命令接受一个参数,该参数是文件系统中的路径。该命令会将当前目录切换到指定路径所指向的目录。路径由以斜杠分隔的目录名组成。目录名可以为“..”,表示返回到父目录。“..”可以在路径中的任意位置出现,也可以多次出现。如果路径以斜杠开头,则表示这是一个绝对路径,即从根目录开始切换。如果参数以目录名(或“..”)开头,则表示这是相对路径,即从当前目录开始切换。 pwd 命令应输出当前目录的绝对路径。该路径中不得包含“..”。 初始时,当前目录是根目录。所有在任意 cd 命令中出现过的目录都视为已存在。保证不会出现试图跳转到根目录的父目录的情况。

输入格式

输入的第一行包含一个整数 $n$($1 \leq n \leq 50$),表示命令的数量。 接下来的 $n$ 行每行包含一条命令。每条命令为 pwd 或 cd,cd 后跟一个以空格分隔的非空参数。 cd 命令的参数只包含小写拉丁字母、斜杠和点,两个斜杠不会连续出现,点只用于表示父目录,不会单独出现其它含义。cd 的参数不会以斜杠结尾,除非该参数仅为一个斜杠,表示根目录。参数长度为 $1$ 到 $200$ 个字符(含端点)。 文件系统中的不同目录可以同名。

输出格式

对于每个 pwd 命令,输出一行完整的当前目录绝对路径,以斜杠结尾。路径必须以斜杠开头,列出从根到当前文件夹的所有按嵌套顺序排列的目录名,以斜杠分隔。路径中不得包含点。

说明/提示

由 ChatGPT 5 翻译