P6214 「SWTR-4」Taking a Walk

题目背景

小 A 喜欢在广场上散步。 有一次在小 A 散步的时候,由于思考得过于投入,他不小心撞在了电线杆上。 于是就有了这道题目(当然是假的)。

题目描述

小 A 和 好友小 Y 站在一个平面上,他们的初始坐标分别是 $(Ax_0,Ay_0)$ 和 $(Bx_0,By_0)$。 当然,站着实在是太无聊了,所以他们会不停地移动。 准确来说,小 A 共有 $n$ 次移动,小 Y 共有 $m$ 次移动。 小 A 在第 $At_{i-1}$ 到第 $At_i$ 时刻会从 $(Ax_{i-1},Ay_{i-1})$ **匀速直线运动**到 $(Ax_i,Ay_i)$。 小 Y 在第 $Bt_{i-1}$ 到第 $Bt_i$ 时刻会从 $(Bx_{i-1},By_{i-1})$ **匀速直线运动**到 $(Bx_i,By_i)$。 - $At_0=Bt_0=0$。 小 A 还有 $q$ 次询问: 每次询问给出一个浮点数 $c$ 和一个整数 $f$,请求出他们第 $f$ 次相距 $c$ 的时刻。 - **特殊的,如果他们之间相距 $c$ 的时刻有无数个**,输出 `-2.33`。 - **特殊的,如果 $f$ 大于他们之间相距 $c$ 的次数**,输出 `-4.66`。 - 如果不满足上面两个条件,输出他们第 $f$ 次相距 $c$ 的时刻。

输入格式

第一行,三个整数 $n,m,q$ —— $n$ 表示小 A 的移动次数,$m$ 表示小 Y 的移动次数,$q$ 表示询问次数。 第二行,四个两位浮点数 $Ax_0,Ay_0,Bx_0,By_0$ —— 表示小 A 和小 Y 的初始坐标。 接下来 $n$ 行,第 $i$ 行三个两位浮点数 $Ax_i,Ay_i,At_i$ —— 意义见题目描述。 接下来 $m$ 行,第 $i$ 行三个两位浮点数 $Bx_i,By_i,Bt_i$ —— 同上。 接下来 $q$ 行,每行一个两位浮点数 $c$ 和一个整数 $f$ —— 描述一个询问。

输出格式

共 $q$ 个浮点数,表示每个询问的答案。

说明/提示

**「Special Judge」** **本题使用 Special judge。** 如果你的输出与正确答案的**相对误差或绝对误差**不超过 $10^{-7}$,将会获得该测试点的满分,否则不得分。**建议输出至少 $8$ 位小数**。 请不要输出除了题目要求以外的数字,否则可能获得 UKE。 保证没有答案为 $0$ 的情况。 SPJ 如下: ``` #include "testlib.h" #define double long double const double eps=1e-7; bool Equal(double x,double y){ return abs(x-y)