#agc058a. [agc058_a]Make it Zigzag

[agc058_a]Make it Zigzag

题目描述

给定一个排列 P=(P1,P2,,P2N) P=(P_1,P_2,\cdots,P_{2N}) ,其中 (1,2,,2N) (1,2,\cdots,2N)

你可以进行以下操作 0 0 N N 次:

  • 选择一个整数 x x (1  x  2N1 1\ \leq\ x\ \leq\ 2N-1 ),交换 Px P_x Px+1 P_{x+1} 的值。

请找出一系列操作,使得操作后的 P P 满足以下条件:

  • 对于每个 i=1,3,5,,2N1 i=1,3,5,\cdots,2N-1 Pi < Pi+1 P_i\ <\ P_{i+1}
  • 对于每个 i=2,4,6,,2N2 i=2,4,6,\cdots,2N-2 Pi > Pi+1 P_i\ >\ P_{i+1}

请输出满足条件的一系列操作,以以下形式输出:

K K x1 x_1 x2 x_2 \cdots xK x_K

其中,K K 表示操作次数 (0  K  N 0\ \leq\ K\ \leq\ N ),xi x_i (1  xi  2N1 1\ \leq\ x_i\ \leq\ 2N-1 ) 表示第 i i 次操作选择的 x x 的值。如果存在多个满足条件的解,任意输出一个即可。

输入格式

从标准输入中按以下格式给出输入:

N N P1 P_1 P2 P_2 \cdots P2N P_{2N}

输出格式

按以下格式输出操作序列:

K K x1 x_1 x2 x_2 \cdots xK x_K

样例 #1

样例输入 #1

2
4 3 2 1

样例输出 #1

2
1 3

样例 #2

样例输入 #2

1
1 2

样例输出 #2

0

提示

约束条件

  • 1  N  105 1\ \leq\ N\ \leq\ 10^5
  • (P1,P2,,P2N) (P_1,P_2,\cdots,P_{2N}) (1,2,,2N) (1,2,\cdots,{2N}) 的排列
  • 输入的数值均为整数

样例解释 1

P=(4,3,2,1) P=(4,3,2,1) 根据操作后,得到 P=(3,4,1,2) P=(3,4,1,2),满足条件。