AT_pakencamp_2023_day1_i Swap and Sort

题目描述

给定一个正整数 $K$ 和一个长度为 $N$ 的正整数序列 $A$。你可以对这个数列至多进行 $5 \times 10^5$ 次如下操作: - 选择一个整数 $i\ (1 \leq i \leq N-1)$。将 $A_i$ 和 $A_{i+1}$ 交换,然后将 $A_{i+1}$ 加上 $K$。 请找到一种操作序列,使最终的数列是非降序的,即满足 $A_1 \leq A_2 \leq \ldots \leq A_N$。保证在本题的限制下,一定存在这样一组操作方案。

输入格式

输入按以下格式从标准输入读入: > $N\ K\ A_1\ A_2\ \ldots\ A_N$

输出格式

输出操作次数 $M\ (0 \leq M \leq 5\times 10^5)$,共 $M+1$ 行。第一行输出 $M$。接下来的第 $k+1\ (1 \leq k \leq M)$ 行,每一行输出第 $k$ 次操作选择的 $i$。

说明/提示

### 样例解释 1 按顺序选择 $i=2,3$,进行两次操作后,可以得到 $A=(1, 1, 2, 5)$。 ### 数据范围 - $1 \leq N \leq 1000$ - $1 \leq K \leq 10^9$ - $1 \leq A_i \leq 10^9$ - 所有输入均为整数。 由 ChatGPT 5 翻译