#P1418. Viva Confetti

Viva Confetti

描述

你见过五彩纸屑吗?它们是一些彩色的小圆纸片,人们在派对或节日时会抛撒它们。由于人们会抛撒大量纸屑,这些纸屑可能会层层堆叠,因此有些纸屑会被压在下面看不见。

现在有一堆大小不一的五彩纸屑被撒在桌面上。给定它们的位置和大小,你能计算出有多少纸屑是可见的吗?

下图展示了第一个样例输入对应的纸屑分布情况,其中底部的纸屑仍然可见。

输入

输入由若干组数据组成,每组数据的格式如下:

n
x1 y1 r1
x2 y2 r2
...
xn yn rn

每组数据的第一行是一个整数 nn,表示纸屑的数量(nn 是一个不超过 100 的正整数),随后 nn 行分别描述每张纸屑的信息:圆心的坐标和半径,用十进制实数表示,最多包含 12 位小数。数据的不精确容差为 ±5×1013±5 \times 10^{-13}。也就是说,可以保证输入值的微小变化(小于 ±5×1013±5 \times 10^{-13})不会影响哪些纸屑是可见的。所有纸屑覆盖的点的坐标范围在 10-101010 之间。

纸屑按堆叠顺序列出,x1 y1 r1x1\ y1\ r1 是最底部的纸屑,xn yn rnxn\ yn\ rn 是最顶部的纸屑。观察者是从顶部向下看的。

输入以单独一行的 00 结束。

输出

对于每组数据,输出一行,表示可见的纸屑数量。

输入样例 1

3  
0 0 0.5  
-0.9 0 1.00000000001  
0.9 0 1.00000000001  
5  
0 1 0.5  
1 1 1.00000000001  
0 2 1.00000000001  
-1 1 1.00000000001  
0 -0.00001 1.00000000001  
5  
0 1 0.5  
1 1 1.00000000001  
0 2 1.00000000001  
-1 1 1.00000000001  
0 0 1.00000000001  
2  
0 0 1.0000001  
0 0 1  
2  
0 0 1  
0.00000001 0 1  
0  

输出样例 1

3  
5  
4  
2  
2  

来源

Japan 2002 Kanazawa