#P14972. 『GTOI - 2C』Fliping

『GTOI - 2C』Fliping

题目描述

给出一个 1n1\sim n 的排列 aa,请问能否通过不超过 30003000 次操作使数组 aa 单调递增

对于每次操作,你可以翻转一个长度至少3\bm3 的区间。

其中,“翻转”指的是:例如数组 a={5,4,3,2,1}a = \{5,4,3,2,1\} ,翻转区间是 [2,4][2,4] 的话,结果是 a={5,2,3,4,1}a = \{5,2,3,4,1\}

如果可以,输出一种构造方案,具体请参考 【输出格式】

如果不可以,输出 -1

输入格式

输入共两行。

第一行,一个正整数 nn

第二行,一个 1n1\sim n 的排列 aa

输出格式

如果存在构造方案:

  • 输出一个非负整数 mm 表示总共需要操作的次数。
  • 然后输出 mm 行,每行两个正整数 l,rl,r 表示每次翻转的区间 [l,r][l,r]

本题使用 Special Judge ,若有多组构造方案,任意输出一组即可。

如果不存在构造方案,输出 -1 即可。

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

提示

【数据范围】

本题采用捆绑测试。

对于 100%100\% 的数据,保证 1n20001\leq n\leq 2000{a}\{a\}1n1\sim n 的排列。

Subtask\text{Subtask} nn \leq 特殊性质 分数
11 77 2020
22 5050 ^ 1010
33 10001000
44 15001500
55 20002000 保证 aia_i 随机生成
66 ^ 保证 aii(mod2)a_i\equiv i\pmod 2 2020
77