Universal Cup Judging System

Universal Cup

시간 제한: 2 s 메모리 제한: 512 MB 총점: 100 해킹 가능 ✓
통계

Estás a punto de cruzar la carretera, pero un coche circula a gran velocidad por ella.

En el plano cartesiano, una carretera de anchura $w$ se extiende infinitamente en la dirección $x$ y ocupa la franja $0\le y\le w$. Quieres cruzarla desde el límite inferior $y=0$ hasta el límite superior $y=w$, evitando un coche que está en la carretera.

La carrocería del coche se representa mediante un polígono simple con $n$ vértices. En el instante $t=0$, sus vértices son $(x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)$, en orden antihorario a lo largo del contorno. El coche se mueve con velocidad horizontal constante $u$, por lo que, en el instante $t$, su $i$-ésimo vértice está en $(x_i+ut,y_i)$.

Puedes moverte en cualquier dirección o esperar, pero tu velocidad nunca debe superar $v$. Equivalentemente, para cualesquiera dos instantes $0\le t_1\le t_2$, la distancia euclídea entre tus posiciones en esos instantes debe ser como máximo $v(t_2-t_1)$. En ningún momento puedes estar estrictamente dentro de la carrocería del coche; se permite tocar su contorno.

Se te dan $q$ consultas independientes. En la $j$-ésima consulta, empiezas en $(s_j,0)$ en el instante $t=0$. Encuentra el tiempo mínimo necesario para llegar de forma segura a cualquier punto de $y=w$. En cada consulta, el coche vuelve a partir de la misma configuración dada en el instante $t=0$; las consultas no se afectan entre sí. Se puede demostrar que siempre existe una respuesta.

Entrada

La primera línea contiene un entero $T$ ($1\le T\le 5\times 10^4$), el número de casos de prueba.

Cada caso de prueba comienza con una línea que contiene cuatro enteros $n,w,u,v$ ($3\le n\le 5\times 10^5$, $1\le w,v\le 10^9$, $-10^9\le u\le 10^9$): el número de vértices del coche, la anchura de la carretera, la velocidad horizontal del coche y tu velocidad máxima, respectivamente.

Las siguientes $n$ líneas describen el coche en el instante $t=0$. La $i$-ésima línea contiene dos enteros $x_i,y_i$ ($-10^9\le x_i\le 10^9$, $0\le y_i\le w$), las coordenadas de su $i$-ésimo vértice. Los vértices se dan en orden antihorario a lo largo del contorno y forman un polígono simple: las aristas no adyacentes no tienen ningún punto en común, las aristas adyacentes solo se intersecan en su extremo común y no hay tres vértices consecutivos colineales.

La siguiente línea contiene un entero $q$ ($1\le q\le 5\times 10^5$), el número de consultas. Cada una de las siguientes $q$ líneas contiene un entero $s_j$ ($-10^9\le s_j\le 10^9$), que especifica el punto inicial $(s_j,0)$ de la $j$-ésima consulta.

Se garantiza que tanto la suma de $n$ como la suma de $q$ en todos los casos de prueba no superan $5\times 10^5$.

Salida

Para cada consulta, imprime un número real en una línea separada: el tiempo mínimo necesario para llegar de forma segura a $y=w$.

Tu respuesta se considera correcta si su error absoluto o relativo no supera $10^{-6}$. Más precisamente, para cada valor $a$ que imprimas y el valor de referencia correspondiente $b$, se exige $\frac{|a-b|}{\max(1,|b|)}\le 10^{-6}$.

Ejemplos

Entrada 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

Salida 1

3.504497942940
3.333333333333
3.333333333333
20.211324865405
20.000000000000
1.885714285714
2.412409788555

Nota

La figura siguiente muestra el estado inicial ($t=0$) de la primera consulta del primer caso de prueba del ejemplo. El polígono naranja representa el coche, y el punto azul $S=(0,0)$ es tu punto inicial. La flecha indica la dirección de movimiento del coche, con $u=1$.

problem_20718_7e260e9a9674bf91658fb3a107440291.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.