CF1827A.Counting Orders

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Counting Orders

题目描述

给定两个长度为 nn 的整数数组 aabb,其中 aa 的所有元素两两不同。

请你计算有多少种重新排列 aa 的方式,使得对于所有 1in1 \le i \le n,都有 ai>bia_i > b_i。答案对 109+710^9 + 7 取模。

如果两种重新排列后得到的数组不同,则认为它们是不同的方案。

输入格式

每个测试点包含多组测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n2×1051 \le n \le 2 \times 10^5),表示数组 aabb 的长度。

第二行包含 nn 个两两不同的整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9),表示数组 aa。保证 aa 的所有元素两两不同。

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n1bi1091 \le b_i \le 10^9),表示数组 bb

保证所有测试用例中 nn 的总和不超过 2×1052 \times 10^5

输出格式

对于每个测试用例,输出一个整数,表示可以重新排列数组 aa 使得对于所有 1in1 \le i \le n,都有 ai>bia_i > b_i 的方案数,对 109+710^9 + 7 取模。

说明/提示

由 ChatGPT 4.1 翻译

样例

5
6
9 6 8 4 5 2
4 1 5 6 3 1
3
4 3 2
3 4 9
1
2
1
3
2 3 4
1 3 3
12
2 3 7 10 23 28 29 50 69 135 420 1000
1 1 2 3 5 8 13 21 34 55 89 144
32
0
1
0
13824

在线编程 IDE

建议全屏模式获得最佳体验