洛谷的测试数据仅供民间交流使用,非官方测试数据。官方评测链接:https://www.cspro.org/ 。
新入职西西艾弗岛有限公司的小 C 接替了刚刚升职的小 S 的项目。然而小 C 打开项目工程时,一层层嵌套的文件夹让小 C 感到眼花缭乱。为了精简项目结构,小 C 决定对项目的文件夹进行一些必要的合并。
项目中共有 个文件夹。为了方便,我们用 至 的整数给这 个文件夹编号,其中编号为 的文件夹为项目的根文件夹,其他每个文件夹都有一个父文件夹,这些文件夹构成了树形结构。除了子文件夹以外,第 个文件夹内还直接存储了 字节的数据。
小 C 进行了若干次文件夹合并操作。每次操作中小 C 会选择一个文件夹 ,将这个文件夹和它的所有子文件夹合并。具体地,小 C 会进行以下操作:遍历 的子文件夹 ,将文件夹 包含的所有文件夹和文件移动到文件夹 ,然后删除文件夹 。所有文件和文件夹的名称是两两不同的,合并过程中不需要考虑文件或文件夹重名的情况。在每一次合并操作后,小 C 需要知道文件夹 内共有几个文件夹以及多少字节的数据。
例如,考虑以下项目:根文件夹内有文件夹 和文件夹 以及 字节数据,其中文件夹 为空文件夹,文件夹 内有 字节数据和文件夹 ,文件夹 包含 字节数据。对根文件夹进行一次合并后,文件夹 和文件夹 被合并至根文件夹,此时根文件夹下有文件夹 以及 字节数据,而文件夹 下也包含 字节数据。
在合并文件夹的过程中,小 C 常常需要访问某个文件夹 下的文件。此时,小 C 会从根文件夹开始,每次进入当前文件夹的一个子文件夹。小 C 需要知道按照以上过程,获取到文件夹 下的文件至少需要经过多少个文件夹。
例如,在以上项目中,未对根文件夹进行合并前,访问根文件夹下的文件只需要经过根文件夹一个文件夹,而访问文件夹 则需要经过根文件夹以及文件夹 和 。而对根文件夹进行合并之后,访问文件夹 只需要经过根文件夹和文件夹 了。
在整个项目中,小 C 一共进行了 次文件夹合并以及文件访问操作。你需要帮助小 C 正确维护文件夹之间的关系,并在每次操作后正确回答小 C 需要的数据。