CF BUDDY
← Problems·

1016E · Rest In The Shades

2400 · binary search, geometry

Problem: There is a light source on the plane. This source is so small that it can be represented as point. The light source is moving from point (a,sy)(a, s_y) to the (b,sy)(b, s_y) (sy<0)(s_y < 0) with speed equal to 11 unit per second. The trajectory of this light source is a straight segment connecting these two points.

There is also a fence on OXOX axis represented as nn segments (li,ri)(l_i, r_i) (so the actual coordinates of endpoints of each segment are (li,0)(l_i, 0) and (ri,0)(r_i, 0)). The point (x,y)(x, y) is in the shade if segment connecting (x,y)(x,y) and the current position of the light source intersects or touches with any segment of the fence.

You are given qq points. For each point calculate total time of this point being in the shade, while the light source is moving from (a,sy)(a, s_y) to the (b,sy)(b, s_y).

Input Format: First line contains three space separated integers sys_y, aa and bb (109sy<0-10^9 \le s_y < 0, 1a<b1091 \le a < b \le 10^9) — corresponding coordinates of the light source.

Second line contains single integer nn (1n21051 \le n \le 2 \cdot 10^5) — number of segments in the fence.

Next nn lines contain two integers per line: lil_i and rir_i (1li<ri1091 \le l_i < r_i \le 10^9, ri1<lir_{i - 1} < l_i) — segments in the fence in increasing order. Segments don't intersect or touch each other.

Next line contains single integer qq (1q21051 \le q \le 2 \cdot 10^5) — number of points to check.

Next qq lines contain two integers per line: xix_i and yiy_i (1xi,yi1091 \le x_i, y_i \le 10^9) — points to process.

Output Format: Print qq lines. The ii-th line should contain one real number — total time of the ii-th point being in the shade, while the light source is moving from (a,sy)(a, s_y) to the (b,sy)(b, s_y). The answer is considered as correct if its absolute of relative error doesn't exceed 10610^{-6}.

Note:

  • The 1-st point is always in the shade;
  • the 2-nd point is in the shade while light source is moving from (3,3)(3, -3) to (6,3)(6, -3);
  • the 3-rd point is in the shade while light source is at point (6,3)(6, -3).
  • the 4-th point is in the shade while light source is moving from (1,3)(1, -3) to (2.5,3)(2.5, -3) and at point (6,3)(6, -3);
  • the 5-th point is in the shade while light source is moving from (1,3)(1, -3) to (2.5,3)(2.5, -3) and from (5.5,3)(5.5, -3) to (6,3)(6, -3);

Sample Cases

Case 1

Input

-3 1 6
2
2 4
6 7
5
3 1
1 3
6 1
6 4
7 6

Output

5.000000000000000
3.000000000000000
0.000000000000000
1.500000000000000
2.000000000000000

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback