QOJ.ac

QOJ

时间限制: 8 s 内存限制: 1024 MB 总分: 21

#5894. 健美操

统计

健美操课开始了。教练说:“请大家在训练垫上站好,确保每个人都有足够的空间自由挥动手臂,且不会碰到其他人。”人们开始在垫子上走动,试图找到合适的位置。几分钟过去了,教练终于感到厌烦,他要求你编写一个程序来为所有人安排正确的位置,希望这比让他们自己摸索要快!

你将获得训练垫的尺寸(宽和长)。对于每个学生,她都需要一个属于自己的圆形区域,其半径等于她手臂的伸展长度。这些圆不能相交,但可以相切;每个圆的圆心(学生站立的位置)必须在垫子范围内。注意,手臂可以伸到垫子外面。已知垫子上有充足的空间——垫子的面积至少是所有学生所需圆面积总和的五倍。保证所有人总能按照要求找到位置。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含两行。第一行包含三个整数:$N$、$W$ 和 $L$,分别表示学生人数、垫子的宽度和长度。第二行包含 $N$ 个整数 $r_i$,表示第 $i$ 个学生的手臂伸展长度。

输出格式

对于每个测试用例,输出一行 "Case #n: y",其中 $n$ 是用例编号(从 1 开始),$y$ 是一个包含 $2N$ 个数字的字符串,每个数字可以是整数或实数:$x_1, y_1, x_2, y_2, \dots$,其中 $(x_i, y_i)$ 是第 $i$ 个学生应站立的位置(满足 $0 \le x_i \le W$ 且 $0 \le y_i \le L$)。

由于在垫子上安排学生的方式可能有很多种,你可以输出任何一种正确的方案;但请记住,提交的输出文件大小不得超过 200kB。

数据范围

$1 \le T \le 50$。 $1 \le W, L \le 10^9$。 $1 \le r_i \le 10^5$。 垫子面积至少是所有圆面积总和的 5 倍: $5 \cdot \pi \cdot (r_1^2 + \dots + r_N^2) \le W \cdot L$。

子任务 1

$1 \le N \le 10$。

子任务 2

$1 \le N \le 10^3$。 所有测试用例中的圆总数 $\le 6000$。

样例

样例输入 1

2
2 6 6
1 1
3 320 2
4 3 2

样例输出 1

Case #1: 0.0 0.0 6.0 6.0
Case #2: 0.0 0.0 7.0 0.0 12.0 0.0

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.