#P7768. Hunting Monsters

Hunting Monsters

Description

一群怪物入侵了小镇。作为小镇的守护者,你需要保护小镇免受怪物的袭击。作为一名聪明的战士,你打算消灭其中一部分怪物,让剩下的怪物闻风丧胆、自行逃离小镇。

要击败一只怪物,你需要消耗 aa 点能量,而击败它之后你会恢复 bb 点能量。如果你攻击前的能量低于 aa,你将会被消灭,小镇也会被摧毁。aabb 的数值因怪物而异。你可以任意选择要击杀的怪物,也可以按任意顺序击杀它们。

你想知道击杀至少 kk 只怪物所需的最少初始能量。你需要对所有 kk 计算答案。

Format

Input

输入的第一行包含一个整数 tt1t101 \leq t \leq 10),表示测试数据的组数。每组测试数据包含三行。

每组测试数据的第一行包含一个整数 nn1n1051 \leq n \leq 10^5),表示怪物的数量。第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n0ai1090 \leq a_i \leq 10^9),表示击败第 ii 只怪物所需的能量。第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n0bi1090 \leq b_i \leq 10^9),表示击杀第 ii 只怪物后你恢复的能量。保证所有测试数据的 nn 之和不超过 10510^5

Output

anskans_k 为击败 kk 只怪物所需的最少初始能量。

你需要计算所有 anskans_k1kn1 \leq k \leq n)。为了避免巨大的输出量,你只需要输出:

$$\sum_{k=1}^{n} \left( k \cdot ans_k \right) \bmod (10^9+7)$$

对于每组测试数据,输出一行一个整数。

Samples

2
3
2 3 1
1 5 4
4
1 2 3 4
1 1 2 3
6
30

Hint

对于第一组测试数据,ans=[1,1,1]ans = [1, 1, 1]

对于第二组测试数据,ans=[1,2,3,4]ans = [1, 2, 3, 4]。例如,当你有 44 点初始能量时,你可以依次击杀第 44、第 33、第 22、第 11 只怪物。首先击杀第 44 只怪物,你的能量将变为 44+3=34 - 4 + 3 = 3。接着攻击第 33 只怪物,能量变为 33+2=23 - 3 + 2 = 2。之后击杀第 22 只,能量变为 22+1=12 - 2 + 1 = 1。最后你可以击杀第 11 只,因为你的能量不低于 a1=1a_1 = 1