Improve Inversions
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定一个排列 (即 的某种排列),以及一个整数 。
你可以执行以下操作零次或多次:
- 选择两个整数 和 (),且需满足以下所有条件:
- (即两个位置的间隔至少为 )
- 在操作时,(即左侧的数大于右侧的数)
- 该数对 之前从未被选择过
- 然后交换 和 的值
你的目标是最大化操作次数。请给出一种实现该目标的方案。
输入格式
- 第一行:两个整数 和
- 第二行:排列 的 个元素
输出格式
- 第一行:操作次数
- 接下来 行:每行两个整数 和 ,表示每次操作选择的位置对
示例
5 2
3 5 1 2 4
4
1 4
1 3
2 5
2 4
3 1
1 2 3
0
数据范围
- 是 的排列
说明
- 在样例1中,通过3次操作达到了最大可能操作次数
- 在样例2中,由于初始已是有序排列,无法进行任何操作