#P15317. [VKOSHP 2025] Two Skew Roads

[VKOSHP 2025] Two Skew Roads

说明

在阅读某场比赛中又一个无聊问题的题面时——这场比赛被某些人称为极其重要——你陷入了对故乡别洛达尔(Berlodar)的怀念与遐想。你回忆起自己是多么喜欢沿着它的两条主要道路漫步:福尔摩斯大道(Holmes Avenue)和华生街(Watson Street),这两条路将城市划分为四个巨大的区域。你微微笑了起来,回想起五年级一堂久远的数学课后,当老师讲到角度和距离时,你的眼睛亮了起来,随后的整个晚上,你都在城市的主要交叉口来回走动,最终测出福尔摩斯大道的宽度为 H\ell_H 米,华生街的宽度为 W\ell_W 米,并且它们相交的角度为 α\alpha 度。你在家里翻出一张城市地图,欣慰地确认了你的测量结果是正确的。

不久后你将返回别洛达尔过新年假期,并想拜访你的四位朋友。他们住在不同的区域,因此为了拜访所有朋友,你将多次穿过主要道路,有时甚至要穿过两条。在规划步行路线时,你会好奇:这四个区域之间你需要走多远呢?这两条街道的交通信号灯设置意味着,所有行人的绿灯(相应地,两条道路上车辆的绿灯)是同时亮起的,因此要在任意一对区域之间穿行(即使它们位于对角位置),你都将沿着连接它们边界的最短线段行走。

总共有 4(41)2=6\frac{4 \cdot (4 - 1)}{2} = 6 对区域。请编写一个程序,输出六个数字,即别洛达尔各个区域之间的两两距离。

输入格式

输入仅一行,包含三个实数 H\ell_HW\ell_Wα\alpha,分别表示福尔摩斯大道的宽度(米)、华生街的宽度(米)以及它们相交的角度(度)(0.01H,W10000.01 \le \ell_H, \ell_W \le 10000.1α900.1 \le \alpha \le 90)。这三个数字都将精确到小数点后三位。

输出格式

以任意顺序输出六个实数 —— 别洛达尔四个区域之间的两两距离(米)。当相对误差或绝对误差不超过 10610^{-6} 时,你的答案将被接受。形式化地说,设 {ai}i[1..6]\left\{a_i\right\}_{i \in [1..6]} 是你的答案,{bi}i[1..6]\left\{b_i\right\}_{i \in [1..6]} 是评测程序的答案,如果可以重新排列数组 aa 中的数,使得对于每个下标 i[1..6]i \in [1..6],重排后满足 aibimax{bi,1}106\frac{|a_i - b_i|}{\max\{b_i, 1\}} \le 10^{-6},则答案被视为正确。

23.332 32.17 76.055
23.332 23.332000 32.17 32.170 35.95260 45.39539
3 4 90
5 4 3 3 4 5
400 300 70
400 300 400 300.0 613.251621126 436.073

提示

:::align{center} :::

翻译由 DeepSeek 完成