AT_agc058_a [AGC058A] Make it Zigzag

题目描述

给定一个排列 $ P=(P_1,P_2,\cdots,P_{2N}) $,其中 $ (1,2,\cdots,2N) $。 你可以进行以下操作 $ 0 $ 到 $ N $ 次: - 选择一个整数 $ x $ ($ 1\ \leq\ x\ \leq\ 2N-1 $),交换 $ P_x $ 和 $ P_{x+1} $ 的值。 请找出一系列操作,使得操作后的 $ P $ 满足以下条件: - 对于每个 $ i=1,3,5,\cdots,2N-1 $,$ P_i\ \ P_{i+1} $。 请输出满足条件的一系列操作,以以下形式输出: > $ K $ $ x_1 $ $ x_2 $ $ \cdots $ $ x_K $ 其中,$ K $ 表示操作次数 ($ 0\ \leq\ K\ \leq\ N $),$ x_i $ ($ 1\ \leq\ x_i\ \leq\ 2N-1 $) 表示第 $ i $ 次操作选择的 $ x $ 的值。如果存在多个满足条件的解,任意输出一个即可。

输入格式

从标准输入中按以下格式给出输入: > $ N $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_{2N} $

输出格式

按以下格式输出操作序列: > $ K $ $ x_1 $ $ x_2 $ $ \cdots $ $ x_K $ ## 样例 #1 ### 样例输入 #1 ``` 2 4 3 2 1 ``` ### 样例输出 #1 ``` 2 1 3 ``` ## 样例 #2 ### 样例输入 #2 ``` 1 1 2 ``` ### 样例输出 #2 ``` 0 ```

说明/提示

### 约束条件 - $ 1\ \leq\ N\ \leq\ 10^5 $ - $ (P_1,P_2,\cdots,P_{2N}) $ 是 $ (1,2,\cdots,{2N}) $ 的排列 - 输入的数值均为整数 ### 样例解释 1 将 $ P=(4,3,2,1) $ 根据操作后,得到 $ P=(3,4,1,2)$,满足条件。