P7015 [CERC2013] Crane

题目描述

有 $n$ 个箱子等着装上船。箱子的编号是 $a_1,a_2,\cdots,a_n$。你的工作是通过若干次交换,将它们从小到大排列。你每次可以选择一个区间,将它的前半部分与后半部分交换,两半内部的顺序保持不变。你最多可以交换 $531441$ 次。

输入格式

第一行输入包含数据组数 $T$。 接下来 $2\times T$ 行,表示 $T$ 组数据。每组数据的第一行为 $n\ (1 \leq n \leq 10000)$,表示箱子的数量。第二行为 $n$ 个正整数$a_1,a_2,\cdots,a_n $ ,表示箱子的编号。

输出格式

对于每组数据,首先输出一个数 $m$ ,表示交换的次数。 然后输出 $m$ 行,按照顺序描述每一次交换。对于每次交换,输出要交换的区间中第一个元素和最后一个元素的下标。

说明/提示

Time limit: 4 s, Memory limit: 128 MB.