八奇炼桃都
题号:NC318511
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

传闻在魔神战争时期,为了平定幽冥之患,八位奇人聚首桃都山,布下了「八门七门大阵」。
具体来说,桃都山两侧可以看作是两条平行的生死边界线。仙家在生之界筑起了用来净世的护摩坛,又在死之界唤醒了幽蝶。
大阵的运转规则是:在边界两侧各取两点,每点分别向对方两点引一条直线,则会相交产生两个新的阵眼。若这两个阵眼所成的直线与生死边界线严格垂直,便能搭起一条通路,以隐去朱赤引火幽蝶为代价,换取生死的绝对隔断。
形式化地,在二维平面直角坐标系 xOy 中,给定两条平行于 x 轴的生死边界线 y = 1(生之界)和 y = 0(死之界)。
在生之界 y = 1 上筑有 n 座互不相同的护摩坛,记为 A_1, A_2, \dots, A_n,其横坐标由数组 a 给出(即 A_i = (a_i, 1))。
在死之界 y = 0 上也有 n 朵互不相同的幽蝶,记为 B_1, B_2, \dots, B_n,其横坐标由数组 b 给出(即 B_i = (b_i, 0))。
称一个四元组 (p_{1},q_{1},p_{2},q_{2}) 是一条能成功隔断生死的「镇幽通路」,当且仅当满足以下条件:
1. p_1 \neq p_2q_1 \neq q_2(护摩坛与幽蝶必须各取两处,互不相同);
2. 护摩坛 A_{p_1} 与幽蝶 B_{q_2} 所在直线,和护摩坛 A_{p_2} 与幽蝶 B_{q_1} 所在直线,交于阳阵眼 C_1
3. 护摩坛 A_{p_1} 与幽蝶 B_{q_1} 所在直线,和护摩坛 A_{p_2} 与幽蝶 B_{q_2} 所在直线,交于阴阵眼 C_2
4. 贯通两阵眼的直线 C_1C_2 严格垂直于 x 轴(即垂直于生死边界线)。
请你计算,在这漫山遍野的护摩坛与幽蝶中,一共能构筑出多少条平息幽冥的「镇幽通路」,答案对 998244353 取模。

输入描述:

第一行一个整数 T (1\leq T\leq 10),表示数据组数。
对于每组数据,第一行一个整数 n (1\leq n\leq 5\times 10^4),表示护摩坛与幽蝶的数量。
第二行 n 个互不相同的整数 a_1,a_2,\cdots,a_n (1\leq a_i\leq 2\times 10^5),表示护摩坛的横坐标数组。
第三行 n 个互不相同的整数 b_1,b_2,\cdots,b_n (1\leq b_i\leq 2\times 10^5),分别表示幽蝶的横坐标数组。

输出描述:

对于每组数据,输出一行一个整数,表示能成功构筑出的「镇幽通路」的数量对 998244353 取模的结果。
示例1

输入

复制
2
4
1 4 5 7
2 3 6 8
5
1 9 2 4 3
6 4 8 7 5

输出

复制
16
28