题目背景
小 A 喜欢在广场上散步。
有一次在小 A 散步的时候,由于思考得过于投入,他不小心撞在了电线杆上。
于是就有了这道题目(当然是假的)。
题目描述
小 A 和 好友小 Y 站在一个平面上,他们的初始坐标分别是 (Ax0,Ay0) 和 (Bx0,By0)。
当然,站着实在是太无聊了,所以他们会不停地移动。
准确来说,小 A 共有 n 次移动,小 Y 共有 m 次移动。
小 A 在第 Ati−1 到第 Ati 时刻会从 (Axi−1,Ayi−1) 匀速直线运动到 (Axi,Ayi)。
小 Y 在第 Bti−1 到第 Bti 时刻会从 (Bxi−1,Byi−1) 匀速直线运动到 (Bxi,Byi)。
- At0=Bt0=0。
小 A 还有 q 次询问: 每次询问给出一个浮点数 c 和一个整数 f,请求出他们第 f 次相距 c 的时刻。
-
特殊的,如果他们之间相距 c 的时刻有无数个,输出 -2.33
。
-
特殊的,如果 f 大于他们之间相距 c 的次数,输出 -4.66
。
-
如果不满足上面两个条件,输出他们第 f 次相距 c 的时刻。
输入格式
第一行,三个整数 n,m,q —— n 表示小 A 的移动次数,m 表示小 Y 的移动次数,q 表示询问次数。
第二行,四个两位浮点数 Ax0,Ay0,Bx0,By0 —— 表示小 A 和小 Y 的初始坐标。
接下来 n 行,第 i 行三个两位浮点数 Axi,Ayi,Ati —— 意义见题目描述。
接下来 m 行,第 i 行三个两位浮点数 Bxi,Byi,Bti —— 同上。
接下来 q 行,每行一个两位浮点数 c 和一个整数 f —— 描述一个询问。
输出格式
共 q 个浮点数,表示每个询问的答案。
提示
「Special Judge」
本题使用 Special judge。
如果你的输出与正确答案的相对误差或绝对误差不超过 10−7,将会获得该测试点的满分,否则不得分。建议输出至少 8 位小数。
请不要输出除了题目要求以外的数字,否则可能获得 UKE。
保证没有答案为 0 的情况。
SPJ 如下:
「数据范围与约定」
本题使用捆绑测试。
Subtask 编号 |
n,m≤ |
q≤ |
得分 |
1 |
5×102 |
103 |
10 |
2 |
2×104 |
20 |
3 |
4×104 |
5×104 |
30 |
4 |
8×104 |
3×105 |
40 |
对于 100% 的数据,有 1≤n,m≤8×104,1≤q≤3×105,Atn=Btm≤6×104,1≤f≤m+n,0≤c≤3×104。
为保证极端数据下的精度,所有坐标的绝对值不大于 104。
保证 Ati<Ati+1,Bti<Bti+1,一次移动的时间不超过 6×102。不保证某次移动没有改变位置。
请注意精度误差。
「时间 & 空间限制」
对于第 1 个子任务,时限 1s;其余子任务时限 2.5s。
对于第 1 个子任务,空限 128MB;其余子任务空限 256MB。
为了卡掉错解,出题人放短了时限,但时限仍在 std 的 2 倍以上。
std 轻微卡常,请注意 I/O/常数优化。
本题开启自动 O2 优化。
「来源」
Sweet Round 04 F。
idea & std:Alex_Wei。