João 想要加入他大学的机器人足球队。然而,由于他对机器人学和数学知之甚少,他决定制造一个二维机械臂来充实自己的知识。
该机械臂由 $N$ 个不同长度的节段组成。这些节段之间可以形成任意角度,包括从上方观察时看起来会自相交的配置。这个机械臂工作得很好,但要将机械臂末端定位在给定的 $x, y$ 目标坐标上,对于这么多需要控制的关节来说并非易事。你能帮帮 João 吗?
任务
给定机械臂的描述和相对于机械臂原点的目标坐标,计算出一个能使机械臂末端尽可能靠近目标的配置。
输入格式
第一行包含 $N$,即组成机械臂的节段数量。接下来有 $N$ 行,每行包含一个整数 $L_i$,描述从固定点到机械臂末端的第 $i$ 个节段的长度。最后一行包含 2 个整数:目标点的 $x, y$ 坐标。
数据范围
$1 \le N \le 20$ $1 \le L_i \le 1000$(第 $i$ 个节段的长度) $-20\,000 \le x, y \le 20\,000$(目标坐标)
输出格式
输出应包含 $N$ 行,每行包含两个实数 $x_i, y_i$,表示第 $i$ 个节段末端的坐标。
计算出的第 $i$ 个节段的长度与输入 $L_i$ 的误差不得超过 $0.01$。同样,计算出的末端位置与目标位置之间的绝对误差不得超过 $0.01$。
注意,通常情况下会有多种解。你的程序可以输出其中任意一种。
样例
样例输入 1
3 5 3 4 5 3
样例输出 1a
4.114 -2.842 6.297 -0.784 5.000 3.000
样例输出 1b
3.923 3.100 1.118 2.037 5.000 3.000
说明 1
Sample Output 1a
Sample Output 1b
样例输入 2
2 4 2 -8 -3
样例输出 2
-3.745 -1.404 -5.618 -2.107
说明 2
Sample Output 2