三点不共线
题号:NC266937
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,\,凸多边形是指所有内角大小都在 [0,\pi] 范围内的简单多边形;在平面上能包含所有给定点的最小凸多边形叫做凸包。
\,\,\,\,\,\,\,\,\,\,对于出题人来说,如何构造一个完美的凸包是一个难度较高的问题,由于精度问题的存在,你有几率得到一个凹包,并将其加入数据。
\,\,\,\,\,\,\,\,\,\,本故事纯属虚构,如有雷同,纯属巧合。
\,\,\,\,\,\,\,\,\,\,
\,\,\,\,\,\,\,\,\,\,平面上有两个不同的点 AB ,你需要找到另一个点 C ,使得这三个点构成的 \angle ACB 恰好为 \alpha
\,\,\,\,\,\,\,\,\,\,需要注意的是,在下图中,\angle 1\angle 2 都可以被认为是 \angle ACB ,你只需让其中一个角为 \alpha 即可。

输入描述:

\,\,\,\,\,\,\,\,\,\,每个测试文件均包含多个测试点。第一行输入一个整数 T (1\le T\le 2 \cdot 10^5) 代表测试数据组数,每组测试数据描述如下:
\,\,\,\,\,\,\,\,\,\,第一行输入五个整数 x_1y_1x_2y_2 和 \alpha (-1000 \le x_1y_1x_2y_2 \le 10001 \le \alpha \le 180^{\circ}) 表示给定两点的坐标与需要构造的角度,保证两点不重合。

输出描述:

\,\,\,\,\,\,\,\,\,\,对于每组数据,你都需要在一行上输出两个实数 x 和 y (-10^9 \le xy \le10^9) 表示 C 点的横、纵坐标,数字彼此间通过单个空格间隔。
\,\,\,\,\,\,\,\,\,\,当你的答案所构成的角 \angle ACB 与 \alpha 的误差不超过 10^{-6} 时,均会被视为正确。换句话说,当你的答案满足 \frac{|\angle ACB - \alpha|}{\max(1,\alpha)} \le 10^{-6} 时,均会被视为正确。
示例1

输入

复制
4
2 1 -1 -1 90
4 -1 1 3 100
1 1 1 2 60
9 2 5 4 36

输出

复制
-1 1
4.178199262355 2.258649446766
1.866025403784 1.5
3.922316462825 -3.155367074351

说明

\,\,\,\,\,\,\,\,\,\,第一、二个测试点如下图所示。

备注:

\,\,\,\,\,\,\,\,\,\,如果有多个可能的答案,你只需要输出其中一种。