#XMOJ11358. 不再凹凸
不再凹凸
说明
时间限制:1 Sec
内存限制:256 MB
输入文件:no.in 输出文件:no.out
【定义】
一个三元组 $(a,b,c)$ 是凹凸三元组,当且仅当 $a,b,c$ 两两不等并且 $b$ 是最大的或是最小的。
【问题描述】
给定一个长度为 $N$ 的数列 $A$,数列下标从 $0$ 起始,你可以重复执行以下操作:
- 交换数列中第 $u$ 个元素和第 $v$ 个元素($0 \leq u,v < N$,且 $u \neq v$)。
通过重复上述操作,使得操作后的数列 $A$ 中不存在任何连续的子序列是凹凸三元组。
若操作后的数列中存在某个 $i$,使得 $A_i, A_{i+1}, A_{i+2}$ 构成凹凸三元组,则判定为答案错误。
输入格式
第一行输入数列长度 $N$;
第二行输入数列 $A$ 的各个元素,以空格分隔。
输出格式
第一行输出操作次数 $M$,要求 $0 \le M \le 100000$;
从第二行开始,每行输出一次操作的 $u$ 和 $v$($0 \leq u,v < N$,且 $u \neq v$)。
样例
样例 1
3
1 3 2
2
0 1
1 2
样例说明:
数列变化过程:,最终数列中不存在凹凸三元组。
样例 2
6
1 3 2 2 3 1
1
1 5
样例说明:
数列变化过程:,最终数列中不存在凹凸三元组。
样例 3
10
1 2 3 4 5 6 7 8 9 10
0
样例说明:
原数列本身就不包含任何凹凸三元组,因此无需执行任何交换操作。
数据范围
对于 20% 的数据,$N \le 10$。
对于 100% 的数据,$3 \leq N \leq 100$,$1 \leq A_i \leq 100$。
相关
在下列比赛中: