#JDT8E. 破解魔法阵
破解魔法阵
题目描述
在一个神秘的魔法阵中,封印着一个无名的宝物。魔法阵的核心由 个遵循特定几何法则的圆形能量节点构成。每个圆形节点由其圆心坐标 和半径 描述。
为了破解这个魔法阵,我们知道了魔法阵的法则如下:
-
任意时刻,任意两个圆至多交于一点(即只会出现外切或外离) ,并且不会出现圆包圆的情况;
-
任意两个圆之间的相对关系不会改变 (即若初始为外切,任何时候都为外切)。
为了破解魔法阵,你需要调整每个圆的半径(调整后仍满足上述法则)调整规则如下:
-
每个圆有三种调整状态: (半径增大任意正数) 、 (半径不变) 、 (半径减少任意正数,但调整后半径仍为正数);
-
调整后,所有圆的半径之和必须严格增大。
请计算满足条件的调整方案数 (即不同状态数组的数量) ,结果对 取模。
输入格式
每个测试文件仅有一组测试数据。
第一行是一个整数 (),代表魔法阵中圆的数量。
接下来 行,每行三个整数 , 和 ($\left|x_i\right|,\left|y_i\right|≤10^9,\ 1\le r_{i}\le 10^{9}$),表示第 个圆的圆心坐标和半径。
输出格式
输出一行一个整数,表示满足条件的调整方案数,对 取模。
4
1 1 1
-1 1 1
1 -1 1
-1 -1 1
0
5
0 0 3
14 8 5
4 6 2
0 4 1
8 0 5
3
解释
在第二个样例中,3 个方案中一个是可以将第四个和第五个圆半径减小 ,将其他的圆半径增大 。这样,所有半径之和就增大了 。改变半径前后的情况如下图所示。


另外两种情况为第三个、第四个和五个圆变大,其他减少,和只有第三个圆变大。
相关
在下列比赛中: