#P13325. [GCJ 2012 #2] Aerobics
[GCJ 2012 #2] Aerobics
Description
有氧操课程开始了。教练说:“请大家在训练垫上站好,保证每个人都有足够的空间能自由挥动手臂,而且不会碰到其他人。”大家开始在垫子上走动,试图找到合适的位置。时间一分一秒过去,最终教练非常恼火,要求你写一个程序来给所有人安排正确的位置,希望这样比让他们自己慢慢挪要快!
你会得到课程所用垫子的尺寸(宽度和长度)。对于每位学员,都有一个属于她自己的圆形区域,半径等于她手臂的可达范围。这些圆不能相交,但可以相切;每个圆的圆心(即学员所站的位置)必须在垫子上。注意,手臂可以伸出垫子之外。你知道垫子的空间非常充足——垫子的面积至少是所有圆面积总和的五倍。所有学员都能按要求站下这一点始终成立。
Input Format
输入的第一行为测试用例数 。接下来有 组测试数据。每组测试数据包含两行。第一行三个整数:、 和 ,分别表示学员人数、垫子的宽度和长度。第二行包含 个整数 ,表示第 位学员的手臂可达半径。
Output Format
对于每个测试用例,输出一行 "Case #: ",其中 为测试用例编号(从 1 开始), 是一个包含 个数字的字符串,每个数字可以是整数或实数:、、、,依此类推,其中 表示第 位学员应站的位置( 且 )。
由于学员在垫子上的站位方案可能有多种,你可以输出任意一个合法方案;但请注意,提交的输出文件不得超过 200kB。
2
2 6 6
1 1
3 320 2
4 3 2
Case #1: 0.0 0.0 6.0 6.0
Case #2: 0.0 0.0 7.0 0.0 12.0 0.0
Hint
限制条件
- 垫子的面积至少是所有圆面积总和的 5 倍:
- $5 \times \pi \times (\mathbf{r}_1^2 + \ldots + \mathbf{r}_\mathbf{N}^2) \leq \mathbf{W} \times \mathbf{L}$
测试集 1(6 分,结果可见)
测试集 2(15 分,结果隐藏)
- 所有测试用例的圆总数不超过 6000
翻译由 ChatGPT-4.1 完成。
京公网安备 11011102002149号