T327143 小 A 的代码管理系统

题目背景

> 神说,要有大模拟。

题目描述

小 A 非常喜欢使用 Git 管理代码,但是有一天,小 A 突然觉得自己并没有完全利用 Git 的功能。懒惰的小 A 并不想钻研 Git,便找到了小 B,让他帮忙实现了一个简单的代码管理系统。 小 A 收到了来自小 B 的程序。在 1 秒的尝试后,小 A 立马发现了这个程序的问题,并且尝试和小 B 进行沟通。在非常久的电话沟通后,小 B 不得不承认自己无法完成这个项目,并且挂掉了小 A 的电话。在无奈之下,小 A 找到了你——小 C,并且希望你可以完成这个代码管理系统。 由于小 A 有些健忘,他在每一次重要的交流后都会记录下整个交流过程。而现在,小 A 并不想复述整个需求,就将这次通话的记录发给了你。 你需要编写一份符合小 A 需求的代码管理系统,对一系列指令进行处理,并且给出所需输出。幸运的是,小 A 顺便提供了压力测试的部分输入,这样你就可以事先测试了。 你可以在[这里](https://www.luogu.com.cn/paste/dy5mzv2x)查看通话的记录。

输入格式

输出格式

说明/提示

在样例中,小 A 总共运行了 7 条指令: | # | cmd | 操作 | 文件池 | | :-: | :-: | :-: | :-: | | 1 | `i a.cpp` | 将 `a.cpp` 加入文件池 | `[a.cpp]` | 2 | `i b.cpp` | 将 `b.cpp` 加入文件池 | `[a.cpp, b.cpp]` | 3 | `l` | 输出文件池内文件 | `[a.cpp, b.cpp]` | | 4 | `d a.cpp` | 将 `a.cpp` 移出文件池 | `[b.cpp]` | 5 | `l` | 输出文件池内文件 | `[b.cpp]` | | 6 | `d b.cpp` | 将 `b.cpp` 移出文件池 | `[]` | 7 | `l` | 输出文件池内文件 | `[]` | 对于所有输入数据,均满足:$N \leq 10^6$,每个文件名的长度不超过 $10$,且在 `i xxx` 类型指令中,所有文件名的长度和不超过 $10^6$。 与此同时,你惊讶地发现,小 A 给你准备了一个简易版本的数据,满足 $N \leq 10^3$,同时占据本题 20 分的分数。 出题人说明:如果你的提交记录中出现了 UKE,说明我们的 checker 并不能像小 A 一样快速完成正确性判断。请考虑减少输出的内容。