AT_abc452_f [ABC452F] Interval Inversion Count

题目描述

给定正整数 $N$ 和 $(1,2,\ldots,N)$ 的一个排列 $P=(P_1, P_2, \ldots, P_N)$。 再给定一个整数 $K$。求满足以下两个条件的整数对 $(l, r)$ 的个数: - $1 \le l \le r \le N$ - 序列 $(P_l, P_{l+1}, \ldots, P_r)$ 的逆序对数等于 $K$。

输入格式

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

输出格式

输出满足条件的整数对 $(l, r)$ 的个数。

说明/提示

### 样例解释 1 例如,序列 $(P_1, P_2, P_3) = (6, 3, 2)$ 的逆序对数为 $3$,因此 $(l, r) = (1, 3)$ 满足条件。 此外,$(l, r) = (2, 4), (2, 5), (4, 7), (5, 7)$ 也满足条件,因此输出 5。 ### 样例解释 2 $P$ 的所有连续子序列的逆序对数都为 $0$,所以不存在满足条件的 $(l, r)$,输出 0。 ### 数据范围 - $1 \le N \le 5 \times 10^5$ - $0 \le K \le \frac{N(N-1)}{2}$ - $1 \le P_i \le N \quad (1 \le i \le N)$ - $P_i \ne P_j \quad (1 \le i < j \le N)$ 所有输入均为整数。