AT_utpc2022_f K inversions

题目描述

给定一个 $ (1, 2, \ldots, N) $ 的排列 $ P = (P_1, P_2, \ldots, P_N) $,以及一个整数 $ K $。 请计算,若执行下面的伪代码算法,式 (1) 将被执行多少次? ``` for (int i = 1; i

输入格式

输入从标准输入中给出,格式如下: > $ N $ $ K $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $

输出格式

输出式 (1) 被执行的次数,输出一行即可。

说明/提示

### 样例解释 1 当 $ (i, j) = (1, 1) $ 时,$ (P_1, P_2) = (1, 3) $,不执行式 (1)。 当 $ (i, j) = (1, 2) $ 时,$ (P_2, P_3) = (3, 4) $,不执行式 (1)。 当 $ (i, j) = (1, 3) $ 时,$ (P_3, P_4) = (4, 2) $,执行一次式 (1),$(P_3, P_4)$ 变为 $(2, 4)$。 当 $ (i, j) = (2, 1) $ 时,$ (P_1, P_2) = (1, 3) $,不执行式 (1)。 当 $ (i, j) = (2, 2) $ 时,$ (P_2, P_3) = (3, 2) $,执行一次式 (1),$(P_2, P_3)$ 变为 $(2, 3)$。 当 $ (i, j) = (3, 1) $ 时,$ (P_1, P_2) = (1, 2) $,不执行式 (1)。 合计式 (1) 被执行了 $ 2 $ 次,所以答案为 $ 2 $。 ### 数据范围 - 输入均为整数。 - $ 2 \leq K \leq N \leq 2\times 10^5 $ - $ P $ 为 $ (1,2,\ldots,N) $ 的一个排列。 由 ChatGPT 5 翻译