AT_arc180_b [ARC180B] Improve Inversions

题目描述

给定一个 $ (1,2,\cdots,N) $ 的排列 $ P=(P_1,P_2,\cdots,P_N) $,以及一个整数 $ K $。 你可以进行如下操作 $ 0 $ 次或多次: - 选择整数 $ l,r $($ 1\leq lP_r $。 - 之前从未选择过同一组 $ (l,r) $。 - 然后交换 $ P_l $ 和 $ P_r $ 的值。 你希望最大化操作次数。请给出一种实现方法。

输入格式

输入通过标准输入按以下格式给出: > $ N $ $ K $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $

输出格式

请按以下格式输出答案: > $ m $ $ l_1 $ $ r_1 $ $ l_2 $ $ r_2 $ $ \vdots $ $ l_m $ $ r_m $ 其中 $ m $ 是最大操作次数,$ l_i,r_i $ 是第 $ i $ 次操作选择的 $ l,r $。如果有多种方案,输出任意一种即可。

说明/提示

### 限制条件 - $ 2\leq N\leq 500 $ - $ 1\leq K\leq N-1 $ - $ (P_1,P_2,\cdots,P_N) $ 是 $ (1,2,\cdots,N) $ 的一个排列 - 输入的所有值均为整数 ### 样例解释 1 在本例中,最大操作次数为 $ 3 $。输出样例的操作过程如下: - 第 $ 1 $ 次操作:选择 $ (l,r)=(2,3) $。$ 1\leq 3-2 $,$ P_2>P_3 $,且未选过 $ (2,3) $,满足条件。交换 $ P_2,P_3 $,$ P=(3,1,2) $。 - 第 $ 2 $ 次操作:选择 $ (l,r)=(1,3) $。$ 1\leq 3-1 $,$ P_1>P_3 $,且未选过 $ (1,3) $,满足条件。交换 $ P_1,P_3 $,$ P=(2,1,3) $。 - 第 $ 3 $ 次操作:选择 $ (l,r)=(1,2) $。$ 1\leq 2-1 $,$ P_1>P_2 $,且未选过 $ (1,2) $,满足条件。交换 $ P_1,P_2 $,$ P=(1,2,3) $。 由 ChatGPT 4.1 翻译