Note: The time limit for this problem is 2.5s, 1.25 times the default.
Note: The large size of integers involved in this problem may require the use of 64-bit integer data types (e.g., a "long long" in C/C++).
The Paris Moolympics are coming up and Farmer John is training his team of cows in archery! He has set up the following exercise on the 2D coordinate plane.
There are N(1≤N≤4⋅104) axis-aligned rectangular targets and 4N cows. Every cow must be assigned to a different target vertex. At moment i, for 1≤i≤N:
1.Target i appears.
2.The 4 cows assigned to its vertices shoot at them.
3.If a cow's shot passes through the interior of the target before it hits the assigned vertex or misses, the cows fail the exercise.
4.The target disappears to make space for the next one.
Each cow is located on the y-axis (x=0), and each target is a rectangle where target i has its lower left coordinate at and its upper right coordinate at The coordinates also satisfy (Note: X1 is the same for every target).
In addition, each cow has a "focus" angle they are working on. Therefore, they will turn at a specific angle when shooting. Given that their shot travels in a straight line from their position towards their assigned vertex, the trajectory of cow i's arrow can be described by si (0<|si |<109), the slope of the trajectory.
So that he can carefully examine the cows' technique, Farmer John wants to minimize the distance between the furthest cows. If Farmer John were to optimally assign each cow to a target vertex and place them on the y-axis, can you help him determine what the minimum distance between the furthest cows would be or if the cows will always fail the exercise?
Each input contains T (1≤T≤10) independent test cases. The sum of N across all test cases is guaranteed to not exceed 4⋅104.
INPUT FORMAT (input arrives from the terminal / stdin):
The first line contains T(1≤T≤10), the number of independent test cases. Each test case is described as follows:The first line of each test case contains two integers, N and X1, the number of targets and the left-most x-coordinate of the targets respectively.
This is followed by N lines with the i-th line consisting of three integers,and , the lower y-coordinate, the upper y-coordinate, and the right x-coordinate of the i-th target respectively.
The last line consists of 4N integers,s1,s2,…,s4N where si denotes the slope of cow i's shot trajectory.
OUTPUT FORMAT (print output to the terminal / stdout):
The minimum possible distance between the furthest cows or −1 if the cows will always fail the exercise.
SAMPLE INPUT:
3
2 1
1 3 6
4 6 3
1 -1 2 -2 3 -3 4 -4
2 1
1 3 6
4 6 3
1 1 2 2 3 3 4 4
2 1
1 3 3
4 6 3
1 -1 2 -2 3 -3 4 -4
SAMPLE OUTPUT:
17
-1
11
One optimal assignment for test case 1 is the following target vertices for cows 1-8 respectively:
(6,1),(6,3),(3,4),(3,6),(1,4),(1,3),(1,6),(1,1)
This gives the following y locations for cows 1-8 respectively:
−5,9,−2,12,1,6,2,5
This gives a minimum distance of 12−(−5)=17.
One reason the second test case is impossible is because it is impossible to shoot the vertex at (6,3)(the top right vertex of target 1) without the shot passing through the interior of target 1.
SCORING:
Input 2: |si|is the same for all 1≤i≤4N.
Input 3-9: The sum of N across all testcases is at most 1000.
Inputs 10-15: No additional constraints.
Problem credits: Suhas Nagar
扫码领取USACO试题答案+详细解析
咨询一对一备赛规划