编程题
### 问题描述 **逆序对** 指的是数组 $a$ 中满足以下条件的任意一对元素: - 元素在数组中的位置分别为 $i,j$,且 $i< j$。 - 元素的值:$a_i > a_j$。 给定一个长度为 $n$ 的数组 $a$,小桥可以轻易地求出数组 $a$ 中的逆序对数量。然而,小蓝决定给小桥增加难度。 小蓝会给出 $q$ 次询问,每次询问包含两个下标 $(i, j)$。他想知道如果将下标 $i$ 和 $j$ 上的元素交换,数组 $a$​ 的逆序对数量会是多少? 这一下就将小桥问倒了,现在小桥请你来帮她解决这个问题。 **注意:每次询问并不会真正交换下标 $i$ 和 $j$​ 上的元素。** ### 输入格式 第一行输入两个整数 $n,q(1 \leq n,q \leq 2 \times10^5)$ 表示 $a$ 的长度和小蓝的询问次数。 第二行输入 $n$ 个整数 $a_1,a_2,a_3,\cdots,a_n(1 \leq a_i \leq 10^9)$ 表示数组 $a$​。 接下来 $q$ 行,每行输入两个整数 $i,j(1 \leq i \leq j \leq n)$ 表示一次询问。 ### 输出格式 输出 $q$ 行,每行一个整数表示答案。 ### 输入样例 ```text 5 3 5 2 3 4 1 1 2 2 3 1 5 ``` ### 输出样例 ```text 6 8 0 ```
查看答案
赣ICP备20007335号-2