atcoder#ARC121C. [ARC121C] Odd Even Sort

[ARC121C] Odd Even Sort

题目描述

(1,2, , N) (1,2,\ \ldots,\ N) を並び替えた数列 p p が与えられます。 はじめ、p p の第 n n 項は pn p_{n} です。

あなたの目的は N2 N^2 回以下 操作 を行い p p を昇順に並び替えることです。 あなたは操作により以下のように p p を変更することができます。

  • 奇数 回目の操作では 1 1 以上 N1 N-1 以下の 奇数 n n を選んで pn p_n pn+1 p_{n+1} を入れ替えます。
  • 偶数 回目の操作では 2 2 以上 N1 N-1 以下の 偶数 n n を選んで pn p_n pn+1 p_{n+1} を入れ替えます。

この問題の制約下で必ず目的を達成できることが証明できます。 そのような操作列を 1 1 つ求めてください。

T T 個のテストケースが与えられるのでそれぞれについて答えを求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

T T case1 \mathrm{case}_{1} \vdots caseT \mathrm{case}_{T}

各テストケースは以下の形式で与えられる。

N N p1 p_1 \cdots pN p_N

输出格式

T T 個のテストケースについて与えられた順番に以下の形式で答えを出力せよ。

M M a1 a_1 \cdots aM a_M

M M は操作列の長さを表し、ai a_i i i 回目の操作で選んだ整数を表す。

全てのテストケースにおいて目的が達成される操作列が出力されたならば正解となる。

题目大意

给出一个长度为 nn 的排列 pp

你可以进行最多 n2n^2 次操作,对于第 ii 次操作:

  • ii 为奇数,则你必须选择一个奇数位置 qq,交换 pqp_qpq+1p_{q + 1}
  • ii 为偶数,则你必须选择一个偶数位置 qq,交换 pqp_qpq+1p_{q + 1}

询问你将排列变为升序的方案。如果有多种方案任意输出一种即可。

本题共有 TT 组数据。

——by hswfwkj

2
5
2 1 3 5 4
2
1 2
2
1 4
0

提示

制約

  • 与えられる入力は全て整数
  • 1  T  250 1\ \leq\ T\ \leq\ 250
  • 2  N  500 2\ \leq\ N\ \leq\ 500
  • 1  pi  N 1\ \leq\ p_i\ \leq\ N
  • p p (1,2,,N) (1,2,\ldots,N) を並び替えて得られる。
  • 1 1 つの入力ファイルにおいて N N の総和は 500 500 を超えない。

Sample Explanation 1

- 1 1 つ目のテストケースについて説明します。 - 1 1 回目の操作で 1 1 を選ぶと p p (1,2,3,5,4) (1,2,3,5,4) となります。 - 2 2 回目の操作で 4 4 を選ぶと p p (1,2,3,4,5) (1,2,3,4,5) となります。 - (1,4) (1,4) は操作列として正しいですが、(4,1) (4,1) は操作列として正しくないことに注意してください。 - 操作を 1 1 度も行わなくともよいこと、操作回数を最小にする必要はないことに注意してください。