#3466. cd 与 pwd 命令

cd 与 pwd 命令

题目描述

Vasya 正在写一个操作系统外壳(shell),它需要提供操作目录的命令。一开始他只打算实现两条命令:cd(切换当前目录)和 pwd(显示当前目录)。

Vasya 操作系统里的目录构成传统的树形结构。有唯一的根目录,用字符 "/" 表示。其余每个目录都有一个名字——一个由小写拉丁字母组成的非空字符串。除根目录外的每个目录都有一个父目录(即包含它的目录),用 ".." 表示。

命令 cd 接受一个参数,即文件系统中的一个路径,它把当前目录切换到路径指定的目录。路径由若干目录名用斜杠隔开。目录名可以是 "..",表示回到父目录;".." 可以出现在路径的任何位置,也可以出现多次。如果路径以斜杠开头,则视为绝对路径,即从根目录出发切换到指定目录;如果参数以目录名(或 "..")开头,则视为相对路径,即从当前目录出发切换。

命令 pwd 应输出当前目录的绝对路径,且路径中不能含有 ".."。

初始时当前目录是根目录。所有在命令中显式或间接提到的目录都视为存在。保证不会尝试从根目录跳到它的父目录。

输入格式

输入数据的第一行包含一个整数 nn(1≤n≤501 \le n \le 50),表示命令数。

接下来 nn 行,每行一条命令:要么是 pwd,要么是 cd 加一个用空格隔开的非空参数。

cd 的参数只含小写拉丁字母、斜杠和点;两个斜杠不会相邻;点只能作为父目录伪目录 ".." 的一部分出现。除指向根目录的情形外,cd 的参数不以斜杠结尾。参数长度在 1 到 200 个字符之间(含)。

文件系统中的不同目录可以有相同的名字。

输出格式

对每条 pwd 命令,输出当前目录的完整绝对路径并以斜杠结尾:以斜杠开头,按从根到当前目录的嵌套顺序列出各级目录名,且不含任何点。

7
pwd
cd /home/vasya
pwd
cd ..
pwd
cd vasya/../petya
pwd
/
/home/vasya/
/home/
/home/petya/
4
cd /a/b
pwd
cd ../a/b
pwd
/a/b/
/a/a/b/