U494803 算法与数据结构实验题 6.41 文件管理器
题目背景
本站测试数据由 [$rkc1221$](https://www.luogu.com.cn/user/1080245) 精心制作,数据包强的。
题目描述
我们需要设计一个简易的文件管理器,总共只有 $5$ 个文件夹,根据不同的输入格式来实现以下功能:
$①$ 添加文件 格式:`1` `folder` `name` `size`
在编号为 `folder`($1 ≤ folder ≤ 5$)的文件夹下添加一个文件,文件名为 `name`($1 ≤ name ≤ 100000$),文件大小为 `size`($1 ≤ size ≤ 100000$)。
如果文件夹中已存在同名文件,则先删除旧文件,再添加新文件。
$②$ 删除文件 格式:`2` `folder` `name`
在编号为 `folder` 的文件夹中删除文件名为 `name` 的文件。如果文件不存在,不执行任何操作。
$③$ 查询文件大小前 $k$ $(1 ≤ k ≤ 10)$ 大的文件 格式:`3` `folder` `k`
查询编号为 `folder` 的文件夹中按文件大小从大到小排序的前 $k$ 个文件(不足则输出全部)。如果大小相同,按文件名的数字从小到大排列。如果文件夹为空或不存在,输出一个空行。
$④$ 查询文件名的数字前 $k$ 小的文件 格式:`4` `folder` `k`
查询编号为 `folder` 的文件夹中按文件名的字典序从小到大排序的前 $k$ 个文件(不足则输出全部)。如果文件夹为空或不存在,输出一个空行。
输入格式
第一行有一个整数 $Q$ ,表示接下来的操作次数$(1 ≤ Q ≤ 10^5)。$
接下来 $Q$ 行,每行表示一个操作,输入格式见题面。
输出格式
对于每个查询操作(类型为 $3$ 或 $4$ 的操作),输出结果占一行,文件名之间以空格分隔。如果查询结果为空,则输出一个空行。
说明/提示
样例解释:
在第 $1$ 步,将文件 $5$ 添加到文件夹 $1$,大小为 $100$。
在第 $2$ 步,将文件 $3$ 添加到文件夹 $1$,大小为 $50$。
在第 $3$ 步,将文件 $4$ 添加到文件夹 $2$,大小为 $80$。
在第 $4$ 步,查询文件夹 $1$ 中按文件大小前 $2$ 大的文件,结果为 $5$ $3$。
在第 $5$ 步,删除文件夹 $1$ 中的文件 $3$。
在第 $6$ 步,查询文件夹 $3$ 中按文件大小前 $3$ 大的文件,结果为 `None`,即输出一个空行。
在第 $7$ 步,查询文件夹 $2$ 中按文件名字典序前 $1$ 小的文件,结果为 $4$。
在第 $8$ 步,查询文件夹 $1$ 中按文件大小前 $1$ 大的文件,结果为 $5$。
### **数据范围**
$1 ≤ Q ≤ 100000,1 ≤ folder ≤ 5,1 ≤ name ≤ 10^5,1 ≤ size ≤ 10^5,1 ≤ k ≤ 10$ .