#P7955. Smzzl with Safe Zone

Smzzl with Safe Zone

Smzzl with Safe Zone

Problem Description

A boy, whose ID is smzzl, is playing a game named Zig-Zag-Land(ZZL). This is a 2D battle royale game. When the game starts, you will spawn in a random place in the map, and your target is to move into the safe zone. Given the border of the map and the border of the safe zone, he wants to know the shortest distance between the spawn point and the safe zone in the worst case. It can be proved that the square of the answer is always rational. In order to check your answer precisely, you need to print the square of your answer modulo 109+710^9+7. You may find the way to modulo a rational number in Problem 1006.

Input

The input consists of multiple test cases. The first line contains an integer TT (1T1041 \leq T \leq 10^4) -- the number of test cases. For each test case: In the first line, there is an integer mm (3m1053 \leq m \leq 10^5), which is the number of vertexes of the safe zone. In the next mm lines, each line contains two integers xi,yix_i,y_i (xi,yi107|x_i|,|y_i| \leq 10^7), which is a vertex of the safe zone. In the next line, there is an integer nn (3n1053 \leq n \leq 10^5), which is the number of vertexes of the game map. In the next nn lines, each line contains two integers xi,yix_i,y_i (xi,yi107|x_i|,|y_i| \leq 10^7), which is a vertex of the game map. It is guaranteed that:

  • The safe zone is a subset of game map.
  • The safe zone and the game map are both convex polygons.
  • All vertexes are given in counter-clockwise order.
  • The sum of nn over all test cases will not exceed 10610^6.
  • The sum of mm over all test cases will not exceed 10610^6. You may need to use faster input method.

Output

For each test case, output the square of your answer modulo 109+710^9+7.

Sample Input

1

4

0 0

1 0

1 1

0 1

4

-1 -1

2 -1

2 2

-1 2

Sample Output

2

Source

2021“MINIEYE杯”中国大学生算法设计超级联赛(7)