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$ .