6028 - 图:并查集:投票(可回滚并查集)

现在伯兰正在举行选举,你想要赢得这场选举。更确切地说,你希望所有选民都投你的票。 总共有n名选民,有两种方法可以说服每名选民为你投票:

第一种方法:说服第i名选民需要向他支付pi​枚硬币; 第二种方法:只要已有mi​名其他选民为你投票,第i名选民就会免费为你投票。

此外,选民为你投票的过程会分多个阶段触发。例如,现有 5 名选民,其m1​=1、m2​=2、m3​=2、m4​=4、m5​=5,你可以花钱买下第 5 名选民的选票,最终所有选民都会为你投票。此时支持你的选民集合变化过程为:5→1,5→1,2,3,5→1,2,3,4,5。 请计算让所有选民都为你投票所需花费的最少硬币数。

Input

第一行输入一个整数t(1≤t≤2×10^5)—— 测试用例的数量。 每个测试用例的第一行输入一个整数n(1≤n≤2×10^5)—— 选民的数量。 接下来n行,每行输入两个整数mi​和pi​(1≤pi​≤10^9,0≤mi​<n),描述第i名选民的信息。 保证所有测试用例的n之和不超过2×10^5。

Output

对于每个测试用例,输出一个整数 —— 让所有选民为你投票的最少硬币花费

Examples

Input

3
3
1 5
2 10
2 8
7
0 1
3 1
1 1
6 1
1 1
4 1
4 1
6
2 6
2 3
2 8
2 7
4 4
5 5

Output

8
0
7

Hint

样例1的第一个解释 操作:你花钱买了选民 3 的选票,此时只有选民 3 明确投你。 当前支持你的选民数量:1 个(仅 3)。 检查剩下的选民 1 的条件(m₁=1)—— 选民 1 需要1 个其他选民先投你,他就免费投你。 此时已经有选民 3 投你了(刚好 1 个 “其他选民”),满足 m₁=1 的条件。所以选民 1 自动免费加入,支持集合变成 {1,3}。 当前支持你的选民数量:2 个(1、3)。 检查最后剩下的选民 2 的条件(m₂=2)—— 选民 2 需要2 个其他选民先投你,他就免费投你。 此时已经有选民 1、3 投你了(刚好 2 个 “其他选民”),满足 m₂=2 的条件。 所以选民 2 自动免费加入,支持集合变成 {1,2,3}。

Time Limit 2 seconds
Memory Limit 256 MB
Discuss Stats
上一题 下一题