Universal Cup Judging System

Universal Cup

时间限制: 2 s 内存限制: 512 MB 总分: 100 可 Hack ✓
统计

あなたは道路を横断しようとしていますが、道路を車が疾走しています。

直交座標平面上で、幅 $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$ 以下でなければなりません。言い換えると、任意の 2 つの時刻 $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$) が与えられます。

各テストケースは、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$ 番目の行には、$i$ 番目の頂点の座標を表す 2 つの整数 $x_i,y_i$ ($-10^9\le x_i\le10^9$, $0\le y_i\le w$) が与えられます。頂点は境界に沿った反時計回りの順で与えられ、単純多角形をなします。隣接しない辺は共通点を持たず、隣接する辺は共通の端点でのみ交わり、連続する 3 頂点が同一直線上に並ぶことはありません。

次の行には、クエリ数を表す整数 $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$ に安全に到達するために必要な最小時間を表す実数を 1 行ずつ出力してください。

絶対誤差または相対誤差が $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_23deafbac4e1b7b3b340ee5586714be4.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.