题目描述
有 n 个英雄和 n 个怪物。英雄和怪物分别编号为 1 到 n 的整数。第 i 个英雄的战斗力为 ai,第 i 个怪物的战斗力为 bi。保证所有 a1,a2,…,an,b1,b2,…,bn 的值都是两两不同的。
将进行总共 n 场战斗。每场战斗中恰好有一个英雄和一个怪物参与,且每个英雄和每个怪物都恰好参与一场战斗。假设某场战斗由编号为 i 的英雄和编号为 j 的怪物进行。如果 ai>bj,则编号为 i 的英雄会感到高兴;否则,他会感到悲伤。
定义 ansk 为大小为 k 的不同英雄集合 S 的数量,满足存在一种战斗分配方式使得集合 S 中的所有英雄都高兴,而其他英雄都悲伤。
给定 q 个形如 l、r 的查询。对于每个查询,计算 (i=l∑ransi)mod998244353 的值。
输入格式
第一行包含一个整数 n(1≤n≤5⋅103)—— 将进行的战斗场数。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤2⋅n)—— 英雄的战斗力。
第三行包含 n 个整数 b1,b2,…,bn(1≤bi≤2⋅n)—— 怪物的战斗力。
保证所有 a1,a2,…,an,b1,b2,…,bn 的值都是两两不同的。
第四行包含一个整数 q(1≤q≤n+1)—— 查询的数量。
接下来的 q 行每行包含两个整数 l 和 r(0≤l≤r≤n)—— 对应查询的参数。
保证所有 a1,a2,…,an,b1,b2,…,bn 的值都是两两不同的。
输出格式
对于每个查询,输出一个整数 —— 所求的值 (i=l∑ransi)mod998244353。
输入输出样例 #1
输入 #1
3
3 4 6
1 2 5
3
1 2
2 3
3 3
输出 #1
2
3
1
说明/提示
下图展示了第一个样例中的英雄和怪物。英雄位于上方,怪物位于下方。方块中的数字表示对应英雄或怪物的战斗力。

在样例中,存在三个可能的高兴英雄集合:{1,2,3}、{2,3} 和 {1,3}。以下是三种可能的战斗分配方式,使得对应的英雄集合高兴。注意,可能存在多种战斗分配方式使得同一个英雄集合高兴。

评分标准
- (3 分):对于所有 1≤i,j≤n,满足 ai<bj;
- (9 分):q=1,l=1,r=1;
- (6 分):对于所有 1≤i≤n,满足 ai=2⋅i−1,bi=2⋅i;
- (16 分):n≤500,q=1,l=0,r=n;
- (14 分):q=1,l=0,r=n;
- (15 分):q=1,l=r;
- (17 分):n≤500;
- (20 分):无额外限制。
翻译由 DeepSeek V3 完成