SP9509 CYLINDES - Shortest Path on a Cylinder
题目描述
蚂蚁聪明现在在一个圆柱体的表面上,他想要移动到这个圆柱体表面的另一个位置。和其他起名字叫“聪明”的动物一样,他希望找到一条从一个点到另一个点的最短路径。
不幸的是,蚂蚁聪明暂时还无法自己解决这个问题。现在,就由你来帮他找出答案。
输入格式
本题包含若干组测试数据,大约有 1000 组。输入的第一行是一个整数,表示测试数据的数量。
对于每组测试数据,第一行由两个整数构成,分别表示圆柱体的半径和高度,中间用空格隔开。
随后两行分别描述圆柱体表面上的两个点,每行包含三个整数:**h**、**a** 和 **r**。其中,**h** 代表该点所在的圆距离底面的高度;**a** 是极角,范围在 $0 \leq a < 360$;**r** 是该点在所在圆上的径向距离。用三维坐标表示的话,该点位置可以用 $(\cos(\text{a}) \times \text{r}, \sin(\text{a}) \times \text{r}, \text{h})$ 这个点来表示。
可以保证给出的点一定在指定的圆柱体的表面上。
输出格式
对于每组测试数据,输出一行,表示圆柱体表面上两点间最短路径的长度。你的解在至少 99% 的测试数据中,绝对误差需小于 $10^{-2}$。
**本翻译由 AI 自动生成**