问题 1421. -- 签到
1421: 签到
时间限制:1000 ms
内存限制:128 MB
Special Judge
提交:48
解决:11
[
提交][
状态][
讨论版]
题目描述
注意这不是签到题
x大学某些老师喜欢使用带定位的小程序进行签到,而qkoqhh由于奔波忙碌经常无法完成。请你帮助qkoqhh解决一个问题。
为简化问题,qkoqhh把地球视为一个半径为1的圆球。签到时,老师设定了一个签到区域为中心在经纬度lon1,lat1,距离r1的圆;而qkoqhh此时处在lon2,lat2位置处,他的定位误差圈距离为r2。此处r1、r2指的是经过球面上两点的距离。若设定的区域和误差圈有重叠区域,就会被判断为签到成功。
qkoqhh发现今天不仅可以签到成功,而且自己的误差圆和设定圆刚好有两个交点,请你求出这两个交点的位置。
输入
输入包含多组数据,总共不超过100组数据,以EOF结束
之后每组数据输入包括两行,每行三个实数
格式为
lon1 lat1 r1
lon2 lat2 r2
代表上述题目中的经纬度和距离
其中经度-180<=lon<180, 纬度 0<=lat<90,半径 0
正数代表东经和北纬
输入保证两个圈有且仅有两个交点
输出
对于每组数据
输出包括两行,每行为三个范围在[-1,1]的实数,意义如下:
由于接近南北极位置处经度误差太大,所以请你输出两个交点在三维空间中的实际坐标。按z坐标从小到大输出,保证结果z不同。
这里规定赤道与本初子午线交点坐标为(1,0,0),东经90度北纬0度坐标为(0,1,0),北极坐标为(0,0,1)
你的答案与实际答案绝对误差不超过1e-6均视为正确
样例输入
0 45 0.7853981633974483 90 45 0.7853981633974483 0 45 0.7853981633974483 -90 45 0.7853981633974483
样例输出
0.666667 0.666667 0.333333 0.000000 0.000000 1.000000 0.666667 -0.666667 0.333333 0.000000 0.000000 1.000000
提示
样例1第一组数据如图所示
可能不会用到的参考资料
https://en.wikipedia.org/wiki/Conformal_map
来源
[
提交][
状态][
讨论版]