编程题
### 问题描述 聪明的小蓝最近刚刚学习了康拓展开,对于任意一个排列他都会求其排名了。 小蓝昨天又去商场抽奖,他又成功地抽到了参与奖——一个排列,但小蓝仍然饶有兴趣,对这个排列产生了不少疑问: 如果交换某两个数字,该排列的排名会变化多少呢? 正式地: 给定一个正整数 $n$ 和一个长度为 $n$ 的排列 $p$。 有 $q$ 次询问: 每次询问给出两个正整数:$l,r$。 你需要求若果交换 $p_l, p_r$,排列的排名会**变化多少**。 ### 输入格式 输入第一行,包含一个整数 $n$。 输入第二行,包含 $n$ 个正整数,表示排列 $p$。 输入第三行,包含一个正整数 $q$,表示询问数量。 输入的接下来 $q$ 行,每行两个正整数 $l,r$,表示要交换 $p_l, p_r$。 ### 输出格式 输出 $q$ 行,每行包含 $1$ 个整数,表示如果交换 $p_l, p_r$,排名的变化量,对 `998244353` 取模。 ### 样例输入 ```text 4 2 3 4 1 3 1 2 1 3 3 4 ``` ### 样例输出 ```text 6 14 998244352 ``` ### 说明 在样例中: 原排列的排名为 $10$。 若交换 $p_1, p_2$ 得到 `[3 2 4 1]`,其排名为 $16$,变化量为 $16 - 10 \mod 998244353 = 6$。 若交换 $p_1, p_3$ 得到 `[4 3 2 1]`,其排名为 $24$,变化量为 $24 - 10 \mod 998244353 = 14$。 若交换 $p_3, p_4$ 得到 `[2 3 1 4]`,其排名为 $9$,变化量为 $9 - 10 \mod 998244353 = 998244352$。 ### 评测数据规模 对于 $100$% 的评测数据:$1\leq n,q \le 2 \times 10^5, 1\le p_i\le n,1\le l_i