#P15109. Adverse Present
Adverse Present
题目描述
给你一个长度为 的排列,和一个整数 。
定义一次操作如下:
选择一个子序列从原序列删除,并按原来顺序添加到排列最后。
请输出将这个排列从小到大排序所需要的最小操作次数 并构造,特别地,如果 或者 ,你不需要构造(请参考输入输出格式)。
排列的定义:一个长度为 的排列是一个由 的正整数组成的序列,满足其中每个数都出现了恰好一次。
子序列的定义:我们称序列 是序列 的子序列,当且仅当可以通过删除 中的若干个元素得到 。
输入格式
第一行两个整数 ,代表排列长度,以及你是否需要构造方案。
第二行 个数,第 个数为排列中第 个元素 ,保证这些数互不相同。
输出格式
第一行一个数 ,代表所需最小次数。
若 或者 ,在第二行输出 -1 并退出。
否则接下来 行,每行第一个数 代表此次操作所选择的子序列长度。然后输出 个互不相同的数,代表此次操作选择的子序列由当前序列哪些下标的元素组成,这些数顺序随意。
4 1
4 3 2 1
2
2 1 3
2 1 3
5 1
5 2 3 4 1
2
3 2 3 4
1 1
5 0
5 2 3 4 1
2
-1
8 0
1 8 5 4 3 2 6 7
3
-1
8 0
1 3 5 7 2 4 6 8
2
-1
提示
本题采用捆绑测试。
。
。
。
。
。
无特殊限制。
对于所有数据,,保证 是一个排列。