Universal Cup Judging System

Universal Cup

Límite de tiempo: 2 s Límite de memoria: 512 MB Puntuación total: 100 Hackeable ✓
Estadísticas

你正准备过马路,但有一辆汽车正在路上疾驰。

在笛卡尔平面中,一条宽度为 $w$ 的道路沿 $x$ 方向无限延伸,占据区域 $0\le y\le w$。你想从下边界 $y=0$ 穿过道路,到达上边界 $y=w$,同时避开路上的汽车。

汽车的车身由一个具有 $n$ 个顶点的简单多边形表示。在时刻 $t=0$,其顶点按沿边界逆时针的顺序依次为 $(x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)$。汽车以恒定的水平速度 $u$ 移动,因此在时刻 $t$,其第 $i$ 个顶点位于 $(x_i+ut,y_i)$。

你可以向任意方向移动或等待,但你的速度始终不能超过 $v$。等价地,对于任意两个时刻 $0\le t_1\le t_2$,你在这两个时刻所在位置之间的欧几里得距离至多为 $v(t_2-t_1)$。你在任何时刻都不能严格位于车身内部;允许接触其边界。

给定 $q$ 个相互独立的询问。在第 $j$ 个询问中,你在时刻 $t=0$ 从 $(s_j,0)$ 出发。求安全到达直线 $y=w$ 上任意一点所需的最短时间。对于每个询问,汽车都会在时刻 $t=0$ 从给定的同一个初始状态重新出发;各个询问互不影响。可以证明答案总是存在。

输入格式

第一行包含一个整数 $T$($1\le T\le5\times10^4$),表示测试用例的数量。

每个测试用例的第一行包含四个整数 $n,w,u,v$($3\le n\le5\times10^5$,$1\le w,v\le10^9$,$-10^9\le u\le10^9$),分别表示汽车的顶点数、道路的宽度、汽车的水平速度以及你的最大速度。

接下来的 $n$ 行描述汽车在时刻 $t=0$ 的状态。第 $i$ 行包含两个整数 $x_i,y_i$($-10^9\le x_i\le10^9$,$0\le y_i\le w$),表示其第 $i$ 个顶点的坐标。顶点按沿边界逆时针的顺序给出,并构成一个简单多边形:不相邻的边没有公共点,相邻的边仅在其公共端点处相交,且任意三个连续顶点不共线。

接下来一行包含一个整数 $q$($1\le q\le5\times10^5$),表示询问的数量。随后 $q$ 行中的每行包含一个整数 $s_j$($-10^9\le s_j\le10^9$),指定第 $j$ 个询问的起点 $(s_j,0)$。

保证所有测试用例的 $n$ 之和以及 $q$ 之和均不超过 $5\times10^5$。

输出格式

对于每个询问,在单独一行输出一个实数:安全到达 $y=w$ 所需的最短时间。

如果你的答案的绝对误差或相对误差不超过 $10^{-6}$,则认为答案正确。更准确地,对于你输出的每个数值 $a$ 及其对应的参考值 $b$,要求 $\frac{|a-b|}{\max(1,|b|)}\le10^{-6}$。

样例

输入格式 1

3
6 10 1 3
-3 3
3 3
3 5
1 5
1 7
-3 7
3
0
6
-6
4 20 5 1
-12 2
2 2
2 10
-2 10
2
0
-12
4 8 2 5
-5 0
5 0
5 8
-5 8
2
-3
3

输出格式 1

3.504497942940
3.333333333333
3.333333333333
20.211324865405
20.000000000000
1.885714285714
2.412409788555

说明

下图展示了样例中第一个测试用例的第一个询问的初始状态($t=0$)。橙色多边形表示汽车,蓝色点 $S=(0,0)$ 是你的起点。箭头表示汽车的运动方向,其中 $u=1$。

problem_20718_2e9b5b2565f197eb8116a3f5b8c066d5.png

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.