#P1347. Triangle

    ID: 348 远端评测题 1000ms 10MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>Southwestern European Regional Contest 1995

Triangle

本题没有可用的提交语言。

题目描述

三角形是平面几何中的基本图形,它由三条直线和它们之间的三个角组成。1图 1 展示了三角形的边和角通常是如何标记的。

查阅几何书籍可知,三角形有许多公式:

  • α+β+γ=π\alpha + \beta + \gamma = \pi
  • $\frac{a}{\sin(\alpha)} = \frac{b}{\sin(\beta)} = \frac{c}{\sin(\gamma)}$
  • a=bcos(γ)+ccos(β)a = b \cos(\gamma) + c \cos(\beta)
  • a2=b2+c22bccos(α)a^2 = b^2 + c^2 - 2bc \cos(\alpha)
  • $\frac{a - b}{a + b} = \frac{\tan(\frac{\alpha - \beta}{2})}{\tan(\frac{\alpha + \beta}{2})}$

aabbccα\alphaβ\betaγ\gamma 这六个参数的值构成了一组能完全确定一个三角形的参数。如果给定了这组参数中足够多的子集,就可以使用上述公式计算出缺失的参数。

你需要编写一个程序,根据给定的三角形六个参数的子集来计算缺失的参数。对于某些参数集,可能无法计算出三角形,原因可能是对三角形的信息了解太少,或者这些参数会导致得到一个无效的三角形。一个有效的三角形的边应大于 00,角应大于 00 且小于 π\pi。你的程序应能检测到这种情况并输出:"Invalid input."。如果给定的参数超过了计算三角形所需的最少参数集,但这些参数相互冲突,例如给出了三个角,但它们的和大于 π\pi,也应输出相同的短语。

其他参数集可能会导致三角形有不止一个但仍然是有限个有效的解。在这种情况下,你的程序应输出:"Morethanonesolution.""More than one solution."

在所有其他情况下,你的程序应计算出缺失的参数,并输出全部六个参数。

输入

输入文件的第一行包含一个数字,表示接下来的参数集的数量。接下来的每一行由六个数字组成,数字之间用一个空格分隔。这些数字分别是参数 aaα\alphabbβ\betaccγ\gamma 的值。参数的标记如图 1 所示。值为 1-1 表示相应的参数未定义,需要进行计算。所有浮点数至少包含八位有效数字。

输出

对于输入文件中找到的每组参数,你的程序应输出一行。如果根据给定的参数能找到一个有效的三角形的唯一解,你的程序应输出六个参数 aaα\alphabbβ\betaccγ\gamma,用空格分隔。否则,该行应包含以下短语:

  • "Morethanonesolution.""More than one solution."
  • "Invalidinput.""Invalid input."

具体情况如上文所述。

输出文件中的数字应至少包含六位有效数字。你的计算应足够精确,以确保得到正确的六位有效数字(即允许的相对误差为 0.0000010.000001)。

输入样例

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 年西南欧洲区域竞赛