CF66C Petya and File System
题目描述
最近,在一次编程课上,小 Petya 展示了自己如何在计算机上快速创建文件和文件夹。但他很快就对这个活动厌倦了,决定做一件更有意义的事情。他想要计算,哪个文件夹包含的子文件夹数(包括嵌套的、再嵌套的等等)最多,以及哪个文件夹包含的文件数(包括其所有子文件夹中的文件)最多。
更正式地说,一个文件夹的子文件夹包括其直接嵌套的所有文件夹,以及这些直接嵌套文件夹的所有子文件夹。一个文件夹本身不能算作自己的子文件夹。一个文件被视为属于某个文件夹,当且仅当它直接位于该文件夹中,或位于该文件夹的某个子文件夹中。
如需更好地理解如何统计子文件夹和文件以计算答案,请参见样例的说明和输出部分。
你将得到 Petya 所创建的一些文件的信息。每个文件的路径如下:
$ diskName $ : $ \ $ $ folder_{1} $ $ \ $ $ folder_{2} $ $\ ...\ $ $ folder_{n} $ $ \ $ $ fileName $
- $ diskName $ 是集合 {C, D, E, F, G} 中的单个大写字母。
- $ folder_{1}, ..., folder_{n} $ 是文件夹名称。每个文件夹名称都是由小写英文字母和数字组成的非空序列($ n \geq 1 $)。
- $ fileName $ 是以 $ name.extension $ 形式出现的文件名,其中 $ name $ 和 $ extension $ 均为小写英文字母和数字组成的非空序列。
另外还已知,不存在形如 $ diskName $ : $ \ $ $ fileName $ 的路径。即每个文件都一定位于某个文件夹之中,根目录下没有直接存放的文件。同时,磁盘根目录不视为文件夹。
请帮助 Petya 找出在某个文件夹中最多可能包含的子文件夹数(包括所有嵌套层级),以及最多可能包含的文件数(包括所有子文件夹及其内部文件)。注意,磁盘根目录不算作文件夹。
输入格式
每行输入描述一个文件路径。每行不超过 100 个字符,总行数不超过 100。保证所有路径均为合法格式,且满足上述规则。也保证没有两行完全相同。也就是说,每个文件只描述一次。
输入至少包含一行。
输出格式
输出两个用空格分隔的整数。第一个为某个文件夹中可能包含的最大子文件夹数(包含所有嵌套层级),第二个为某个文件夹中可能包含的最大文件数(包括所有子文件夹及其内部文件)。注意,磁盘根目录不算作文件夹。
说明/提示
在第一个样例中,"C" 盘上有一个文件夹。它没有任何子文件夹,因此答案的第一个数字是 $ 0 $。但这个文件夹包含一个文件,所以答案的第二个数字是 $ 1 $。
在第二个样例中,有几个不同的文件夹。考虑 "C" 盘上的 "folder1" 文件夹。这个文件夹直接包含一个文件夹 "folder2"。"folder2" 又包含两个文件夹 —— "folder3" 和 "folder4"。因此,"C" 盘上的 "folder1" 文件夹一共有 $ 3 $ 个子文件夹。同时,这个文件夹包含两个文件,虽然它们不直接位于 "folder1" 下,而是在其子文件夹下。
在第三个样例中,可以看到部分文件夹及其子文件夹的名称是相同的。考虑直接在 "C" 盘上的 "file" 文件夹。该文件夹中包含另一个 "file" 文件夹,而它又包含一个 "file" 文件夹,继续包含 "file" 和 "file2" 两个文件夹。因此,直接在 "C" 盘上的 "file" 文件夹总共包含 $ 4 $ 个子文件夹。
由 ChatGPT 5 翻译