[WFOI - 01] 翻转序列(requese)

题目背景

简化题意:[$\texttt{Link}$](https://www.luogu.com.cn/paste/kmmn8pyd)。 为什么做完这题你不去做做[这题](https://www.luogu.com.cn/problem/P8223)呢

题目描述

你需要在一台奇怪的电脑上排序一个 $1\sim n$ 的排列。 你可以选择一个数 $x$,然后你每次可以翻转一段长为 $x+1$ 或一段长为 $x-1$ 的序列。 请在 $20\times n$ 次内还原成 $1\sim n$ 的序列。 (出题人注:现在最优可以达到15000次以下,请尝试优化您的算法)

输入输出格式

输入格式


输入共 $2$ 行: 第一行一个数 $n$。 第二行 $n$ 个数,表示序列 $a$。

输出格式


输出共 $m + 2$ 行。 前两行每行 $1$ 个数,分别是 $x,m$。$m$ 表示操作次数。 接下来 $m$ 行,每行两个数,表示翻转区间的左、右端点。 本题采用 $\text{SPJ}$,只要翻转操作正确即可给分。

输入输出样例

输入样例 #1

2
2 1

输出样例 #1

1
1
1 2

输入样例 #2

5
5 2 3 4 1

输出样例 #2

4
2
1 5
2 4

说明

- **样例 $1$ 解释:** 翻转 $(1,2)$ 序列变成 $1,2$; - **样例 $2$ 解释:** 翻转 $(1,5)$ 序列变成 $1,4,3,2,5$; 翻转 $(2,4)$ 序列变成 $1,2,3,4,5$; **本题采用 Subtask 捆绑测试。** Subtask 编号 | 数据规模与约定 :-: | :-: **Subtask #0** ($\texttt{1 pts}$) | $n=1$ **Subtask #1** ($\texttt{2 pts}$) | $n=2$ **Subtask #2** ($\texttt{3 pts}$) | $n=3$ **Subtask #3** ($\texttt{4 pts}$) | $n=4$ **Subtask #4** ($\texttt{20 pts}$) | $1\le n\le 50$ **Subtask #5** ($\texttt{20 pts}$) | $1\le n\le 100$ **Subtask #6** ($\texttt{50 pts}$) | $1\le n\le 10^3$ 对于 $100\%$ 的数据,$1\le n,a_i\le 10^3$,数据保证 $a$ 是一个 $1\sim n$ 的排列。