#P2660. War on Weather

War on Weather

题目描述

在南岸遭受无端的飓风袭击后,“荣耀战士”(Glorious Warrior)向天气宣战。这场战役的第一波攻击将是对尽可能多的热带低气压发动协同先发制人打击。GW 认为,此次攻击将在热带低气压发展成风暴之前将其摧毁,并阻止其他低气压形成。

GW 可调配 k k 颗空对地杀伤卫星,这些卫星位于太空中的不同位置。已知地球表面有 m m 个热带低气压目标。只要卫星与目标之间有视线(line of sight),卫星即可攻击任意数量的地面目标。问:共有多少个不同的目标可以被击中?

输入

输入包含多个测试用例。每个测试用例的第一行包含整数 0<k,m100 0 < k, m \leq 100 (含义如上)。接下来 k k 行,每行给出卫星在攻击时刻的空间坐标 x,y,z x, y, z 。随后 m m 行,每行给出热带低气压目标的坐标 x,y,z x, y, z 。假设地球是中心位于 (0,0,0) (0,0,0) 的球体,周长为 40,000 公里。所有目标均位于地球表面(误差在 109 10^{-9} 公里内),所有卫星至少位于地表以上 50 公里。最后一个测试用例后,输入一行 0 0 表示结束。

输出

对每个测试用例,输出一行,表示可被击中的目标总数。若某个目标与“是否在视线内”的边界误差在 108 10^{-8} 公里内,可任意计入或不计入(即,只要误差不超过 108 10^{-8} 公里,无需考虑舍入误差)。

输入数据示例 1

3 2  
-10.82404031 -1594.10929753 -6239.77925152  
692.58497298 -5291.64700245 4116.92402298  
3006.49210582 2844.61925179 5274.03201053  
2151.03635167 2255.29684503 5551.13972186  
-1000.08700886 -4770.25497971 4095.48127333  
3 4  
0 0 6466.197723676  
0 6466.197723676 0  
6466.197723676 0 0  
6366.197723676 0 0  
6365.197723676 112.833485488 0  
0 0 6366.197723676  
0 -6366.197723676 0  
0 0  

输出数据示例 1

2  
3  

来源

Waterloo 本地赛 2005.09.24