luogu#P11497. [ROIR 2019 Day 1] 自动仓库
[ROIR 2019 Day 1] 自动仓库
题目背景
翻译自 ROIR 2019 D1T3。
题目描述
公司正在进行仓库自动化。仓库里存放着 种商品,编号从 到 ,每种商品存放在一个独立的房间里。编号为 的商品存放在编号为 的房间里。
一个机器人负责从仓库取货。机器人使用特殊的电子卡片进入仓库的房间。卡片在机器人的一个专用卡槽中。机器人可以从卡槽中取出最前端的卡片。取出的卡片可以放回卡槽中的任意位置。
为了进入一个房间,机器人按以下步骤操作:
- 从卡槽中取出一个卡片,并放回卡槽中。
- 重复这样的操作,直到卡槽最前端的卡片是它需要进入的房间的卡片。
- 然后,取出这张卡片,使用它进入房间,并将其放回卡槽中。
如果机器人总共取出了 张卡片(包括最终打开房间的那张),我们说机器人为了进入这个房间进行了 次操作。
现在,机器人需要按顺序取出 件商品 。最初,电子卡片在卡槽中的顺序为 。每个房间的卡片在卡槽中恰好有一张。
取出商品所需的时间取决于机器人进入对应房间需要的操作次数。为了让机器人更快取出所有商品,你需要确定机器人放回取出卡片的位置,以最小化机器人的总操作次数。
输入格式
第一行输入两个整数 和 ,表示商品种类数和需要从仓库取出的商品数。
第二行输入 个整数 ,表示需要按顺序取出的商品。
第三行输入 个不同的整数 ,表示卡片在卡槽中的初始顺序。
输出格式
第一行输出一个整数 ,表示机器人需要的最小操作次数。
第二行输出 个整数,即对于机器人的每次操作,需要将取出的卡片放回卡槽中的位置(从前到后的位置编号为 到 ,也就是将其放回后这个卡片在卡槽中的位置编号)。
如果有多种方法可以最小化总操作次数,可以输出任意一种。
1 1
1
1
1
1
4 5
4 1 2 4 4
4 3 2 1
7
4 4 2 4 4 1 4
2 2
1 2
2 1
3
2 2 2
提示
样例解释
样例 的所有操作如下:
操作 | 操作前 | 取出的卡片 | 打开的房间 | 卡片放回的位置 | 操作后 |
---|---|---|---|---|---|
- | |||||
数据范围
数据中 Subtask 0 为样例。
子任务 | 分值 | 特殊性质 |
---|---|---|
, | ||
, | ||
,所有 不同 | ||
$1 \leq n \leq 3 \cdot 10^{5}, 1 \leq m \leq 3 \cdot 10^{5}$ |