#L3912. 「PA 2022」Fotografia

「PA 2022」Fotografia

题目描述

题目译自 PA 2022 Runda 3 Fotografia

字节科技学校(Bajtockiej Szkoły Technicznej, BST)的毕业生们聚集在学校前面的广场上拍摄纪念照。他们排成一排,其位置从左到右编号为 11nn,其中 nn 是今年毕业生的人数。

摄影师决定重新安排这些人的位置,让他们按身高升序排列。最矮的人在最左边,最高的人在最右边。幸运的是,今年的毕业生中没有任意两人身高相同。

为了避免混乱,安排位置将按一定方式进行。在一次操作中,摄影师将喊出一串位置编号。在这些位置上的人将按所喊到的顺序出列并走到广场中间。然后,摄影师将重复同样的数字列表。广场中间的人将他们出列顺序的逆序,依次回到摄影师所喊出的位置。

我们希望用尽可能少的操作将所有毕业生按身高的升序排列。你的工作是规划重新安排的方案,并告诉摄影师在第几次操作让哪些毕业生出列。

输入格式

第一行一个整数 nn (1n30001 \le n \le 3\,000),表示毕业生人数。

接下来 nn 行是一个整数序列 h1,h2,,hnh_1, h_2, \ldots, h_n (1hi30001 \le h_i \le 3\,000),每行一个整数,表示站成一排的人的身高。所有身高两两不同。

输出格式

输出第一行包含一个整数 rr,表示把所有人按身高升序排列所用的最少操作次数。

接下来 2r2r 行包含对这些操作的描述。描述第一行包含一个整数 pip_i (1pin1 \le p_i \le n),表示这一轮出列的人数,第二行 pip_i 个整数,表示按输出顺序喊出人的位置编号。在一次操作中喊出的人不能重复。

如果有多种操作次数最少的方案,输出任意一种即可。

5
1670
2011
1560
1232
1447

1
5
2 1 3 4 5

6
1556
1449
1863
2014
1333
1220

2
5
5 6 1 4 3
4
1 2 3 4

数据规模与约定

对于所有数据,保证:

1n3,0001 \le n \le 3,000

1hi3,0001 \le h_i \le 3,000

所有身高两两不同

样例 1 解释: 初始顺序:位置 1: 1670, 位置 2: 2011, 位置 3: 1560, 位置 4: 1232, 位置 5: 1447 按 [2, 1, 3, 4, 5] 顺序出列:2011, 1670, 1560, 1232, 1447 按逆序回到位置:1447 回到位置 2, 1232 回到位置 1, 1560 回到位置 3, 1670 回到位置 4, 2011 回到位置 5 最终顺序:位置 1: 1232, 位置 2: 1447, 位置 3: 1560, 位置 4: 1670, 位置 5: 2011(已按升序排列)

样例 2 解释: 初始顺序:位置 1: 1556, 位置 2: 1449, 位置 3: 1863, 位置 4: 2014, 位置 5: 1333, 位置 6: 1220 第一轮操作 [5, 6, 1, 4, 3] 后变为:[1556, 1449, 1333, 1220, 1863, 2014] 第二轮操作 [1, 2, 3, 4] 后变为:[1220, 1333, 1449, 1556, 1863, 2014](已按升序排列)