#P1347. Triangle
Triangle
本题没有可用的提交语言。
题目描述
三角形是平面几何中的基本图形,它由三条直线和它们之间的三个角组成。 展示了三角形的边和角通常是如何标记的。

查阅几何书籍可知,三角形有许多公式:
- $\frac{a}{\sin(\alpha)} = \frac{b}{\sin(\beta)} = \frac{c}{\sin(\gamma)}$
- $\frac{a - b}{a + b} = \frac{\tan(\frac{\alpha - \beta}{2})}{\tan(\frac{\alpha + \beta}{2})}$
、、、、 和 这六个参数的值构成了一组能完全确定一个三角形的参数。如果给定了这组参数中足够多的子集,就可以使用上述公式计算出缺失的参数。
你需要编写一个程序,根据给定的三角形六个参数的子集来计算缺失的参数。对于某些参数集,可能无法计算出三角形,原因可能是对三角形的信息了解太少,或者这些参数会导致得到一个无效的三角形。一个有效的三角形的边应大于 ,角应大于 且小于 。你的程序应能检测到这种情况并输出:"Invalid input."。如果给定的参数超过了计算三角形所需的最少参数集,但这些参数相互冲突,例如给出了三个角,但它们的和大于 ,也应输出相同的短语。
其他参数集可能会导致三角形有不止一个但仍然是有限个有效的解。在这种情况下,你的程序应输出:。
在所有其他情况下,你的程序应计算出缺失的参数,并输出全部六个参数。
输入
输入文件的第一行包含一个数字,表示接下来的参数集的数量。接下来的每一行由六个数字组成,数字之间用一个空格分隔。这些数字分别是参数 、、、、 和 的值。参数的标记如图 1 所示。值为 表示相应的参数未定义,需要进行计算。所有浮点数至少包含八位有效数字。
输出
对于输入文件中找到的每组参数,你的程序应输出一行。如果根据给定的参数能找到一个有效的三角形的唯一解,你的程序应输出六个参数 、、、、、,用空格分隔。否则,该行应包含以下短语:
具体情况如上文所述。
输出文件中的数字应至少包含六位有效数字。你的计算应足够精确,以确保得到正确的六位有效数字(即允许的相对误差为 )。
输入样例
4
47.9337906847 0.6543010109 78.4455517579 1.4813893731 66.5243757656 1.0059022695
62.72048064 2.26853639 -1.00000000 0.56794657 -1.00000000 -1.00000000
15.69326944 0.24714213 -1.00000000 1.80433105 66.04067877 -1.00000000
72.83685175 1.04409241 -1.00000000 -1.00000000 -1.00000000 -1.00000000
输出样例
47.933791 0.654301 78.445552 1.481389 66.524376 1.005902
62.720481 2.268536 44.026687 0.567947 24.587225 0.305110
Invalid input.
Invalid input.
题目来源
1995 年西南欧洲区域竞赛