Universal Cup Judging System

Universal Cup

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

당신은 도로를 건너려 하지만, 자동차 한 대가 도로를 따라 빠르게 달리고 있습니다.

직교 좌표 평면에서 폭이 $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$번째 줄에는 $i$번째 꼭짓점의 좌표인 두 정수 $x_i,y_i$가 주어집니다($-10^9\le x_i\le10^9$, $0\le y_i\le w$). 꼭짓점은 경계를 따라 반시계 방향 순서로 주어지며 단순 다각형을 이룹니다. 즉, 인접하지 않은 변은 공통점을 갖지 않고, 인접한 변은 공통 끝점에서만 만나며, 연속한 세 꼭짓점이 한 직선 위에 놓이는 경우는 없습니다.

다음 줄에는 질의의 수인 정수 $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_418052727319c901c2f79cce76fdcc96.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.