椭圆田径跑道由两条平行的直道和连接它们的两个半圆组成,如图 1 所示。比赛沿逆时针方向进行,终点线位于下方的直道上。对于超过单条直道长度的比赛,起跑线必须相对于终点线沿顺时针方向向后错开。错开的起跑线必须考虑半圆的弯道和每条跑道的宽度。
国际上对椭圆跑道的尺寸有统一标准。遗憾的是,可用的场地并不总能容纳标准跑道。给定跑道的尺寸和比赛距离,你的团队需要编写一个程序,通过计算错开的起跑线位置来确保比赛距离相等。
任何给定跑道的比赛总距离都是根据“跑步线”(line of running)计算的。跑步线是跑道内侧标记右侧的一条无标记线(从逆时针方向看)。参见图 2。对于最内侧的跑道(第 1 道),跑步线通常比其余跑道距离跑道标记更远。
跑道被映射到一个以跑道中心为原点 $(0, 0)$ 的 $(x, y)$ 坐标系中。参见图 1。
输入的第一行包含七个由空格分隔的值 $N, R, S, W, F, L_1, L_2$,描述跑道的几何形状,其中: $N$ 是跑道数量(整数)。$(1 \le N \le 9)$ $R$ 是第 1 道的内半径(浮点数,单位为米)。参见图 1。$(1.0 \le R \le 100.0)$ $S$ 是直道长度(浮点数,单位为米)。参见图 1。$(1.0 \le S \le 200.0)$ $W$ 是每条跑道的宽度(浮点数,单位为米)。参见图 2。$(0.5 \le W \le 3.0)$ $F$ 是终点线的 $x$ 坐标,从图 1 中的中心线测量(浮点数,单位为米)。终点线始终位于跑道的下半部分($y$ 为负)。$(|F| \le S/2)$ $L_1$ 是第 1 道内半径到第 1 道跑步线的偏移量(浮点数,单位为米)。参见图 2。$(0 \le L_1 < W)$ $L_2$ 是第 2 道及以上跑道的内半径到跑步线的偏移量(浮点数,单位为米)。参见图 2。$(0 \le L_2 < W)$
剩余行直到文件结束指定了 $D$,即比赛距离(每行一场比赛,浮点数,单位为米)。$(1.0 \le D < 410.0)$
你的程序需要为每场比赛距离打印一系列值,并用空格和/或换行符分隔。首先打印比赛距离,然后按跑道编号顺序打印错开的起跑线位置的 $(x, y)$ 坐标。所有值均以米为单位表示。$(x, y)$ 坐标是跑道的最内侧点,而不是跑步线。将每条跑道标记(直道或半径)视为零宽度的线。国际标准要求数值与精确答案的误差在 $0.001$ 米以内。
图 1. 带有 200m 起跑线的椭圆跑道。
图 2. 显示错开起跑线位置的插图。
样例
输入 1
4 36.5 84.39 1.22 40.0 0.30 0.20 200.0 400
输出 1
200.000 -40.0006 36.5000 -43.5119 37.6970 -47.3108 38.6025 -51.0664 39.1679 400.000 40.0012 -36.5000 46.9998 -37.4127 54.4292 -36.9682 61.4438 -35.2464