编程题
### 问题描述
**逆序对** 指的是数组 $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
```