QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100

#12891. 婚礼自拍

統計

在 Daryl 的婚礼上,他与新娘拍了一张精美的自拍。这张照片非常独特,Daryl 和他的妻子决定把它挂在新家的墙上。这张自拍是一个具有 $N$ 个顶点的凸多边形。Daryl 那笨手笨脚的兄弟 Merle 主动提出帮他们挂照片。Merle 用了 $N$ 颗钉子,每个顶点一颗,把照片挂在墙上。然而,只有他用的第一颗钉子拧紧了。其他的钉子都很松,没过多久就松脱了。所以,过了一段时间,Daryl 发现那张精美的自拍尴尬地挂在墙上,仅由那颗拧紧的钉子支撑着。你的任务是找出照片最终静止后,多边形各个顶点的新位置。

给定多边形顶点的原始位置,按逆时针顺序排列,并以 Merle 拧紧的那颗钉子对应的顶点为起点。为简化起见,拧紧的顶点始终位于 $(0, 0)$。当多边形开始悬挂时,它将能够绕该顶点自由旋转。只有当多边形在 $Y$ 轴右侧的面积等于其在 $Y$ 轴左侧的面积时,多边形才会静止。如果存在多个这样的位置,照片将静止在使多边形在 $X$ 轴下方的面积最大的位置。你能帮 Daryl 计算出照片静止后各个顶点的最终位置吗?

输入格式

程序将测试一个或多个测试用例。输入的第一行是一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$ ($3 \le N \le 100$),表示顶点的数量。随后有 $N$ 行,每行包含两个由空格分隔的整数 $X_i$ 和 $Y_i$ ($-1,000 \le X_i, Y_i \le 1,000$),表示第 $i$ 个顶点的坐标。你可以假设没有 3 个连续的顶点位于同一直线上,并且每个测试用例的第一个顶点(即拧紧钉子的位置)都在 $(0, 0)$。

在凸多边形中,所有内角均小于 180 度。保证所有给定的多边形均为凸多边形。

输出格式

对于每个测试用例,打印一行“Case n:”(不含引号,其中 n 为测试用例编号,从 1 开始),随后打印 $N$ 行,每行包含两个由空格分隔的值 $X_i$ 和 $Y_i$,保留小数点后 6 位有效数字,表示自拍静止后第 $i$ 个顶点的新坐标,顺序与输入中给出的顺序相同。

请确保不要输出 -0.000000,而应输出 0.000000。

样例

样例输入 1

1
4
0 0
1 0
1 1
0 1

样例输出 1

Case 1:
0.000000 0.000000
-0.707107 -0.707107
0.000000 -1.414214
0.707107 -0.707107

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.