T529252 Life Will Change
题目描述
给定一个长度为 $n$ 的排列 $p_1, p_2, p_3, \dots, p_n$,一次操作可以交换排列中的两个元素 $p_i$ 和 $p_j$,其中 $1 \leq i < j \leq n$。
你的任务是在不超过 $n-1$ 次操作内,将排列变成升序排列 $1, 2, 3, \dots, n$。你需要输出一种操作方案。
输入格式
第一行包含一个整数 $n$,表示排列的长度 ($2 \leq n \leq 10^6$)。
第二行包含 $n$ 个整数 $p_1, p_2, p_3, \dots, p_n$,表示给定的排列。保证每个整数 $1 \sim n$ 出现且只出现一次。
输出格式
第一行输出一个整数 $k$,表示方案所需的操作次数。
接下来的 $k$ 行,每行包含两个整数 $x$ 和 $y$,表示交换 $p_x$ 和 $p_y$ 的操作 ($1 \leq x < y \leq n$)。
说明/提示
对于所有输入,$2 \leq n \leq 10^6$。输出可以有多种方案,只需要输出任意一种满足条件的方案即可。