Nanarikom 正在游玩名为 osu! 的音乐游戏。
Nanarikom 发现 osu! 的 logo 上有许多大小不一的正三角形,因此,Nanarikom 突发奇想想要计算以下问题。
Nanarikom 首先定义了一个正三角形网格 \triangle ABC△ABC,具体地:
现在,Nanarikom 想要在 \triangle ABC△ABC 内摆放若干障碍物。候选项是 nn 个大小和位置不一的、底边水平的正三角形。第 ii 个障碍物的信息可以使用参数 (x_i, y_i, \mathit{siz}_i, w_i)(xi,yi,sizi,wi) 描述,其中:
现在,Nanarikom 想要计算,如何选择一个候选障碍物的子集,使得 AA, BB, CC 三者中的任意二者都不能相互连接,且该子集的总代价尽可能小。请你告诉 Nanarikom 最小总代价的值;如果不存在可行的子集,请输出 -1−1。
其中,对于两个顶点 XX, YY,如果存在一条两端点分别为 XX, YY 的曲线,使得该曲线与任意障碍物的交集为空,且该曲线的非端点部分与 \triangle ABC△ABC 边界的交集为空,则称 XX, YY 可以相互连接;否则,XX, YY 不能相互连接。
你需要回答 Nanarikom 的 TT 组询问。
第一行包含一个整数 TT(1 \leq T \leq 10001≤T≤1000),代表测试数据组数。对于每组测试数据:
输入数据保证,至多只有 55 组测试数据使得 n > 100n>100。
2
3 4
3 1 1 10
1 1 2 10
1 0 2 10
3 4
3 1 1 10
2 2 1 10
1 0 1 10
30
-1
对于第一组样例和第二组样例,相应的示意图分别如下: