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 一样快速完成正确性判断。请考虑减少输出的内容。