#P10190. [USACO24FEB] Target Practice II S
[USACO24FEB] Target Practice II S
题目背景
注意:本题的时间限制为 2.5 秒,通常限制的 1.25 倍。
注意:这个问题涉及到的整数可能需要使用 64 位整数型(例如,C/C++ 中的 long long
)。
题目描述
巴黎哞运会即将来临,Farmer John 正在对他的奶牛队进行射箭训练!他在二维坐标平面上设置了以下练习。
有 ()个四边与坐标轴平行的矩形箭靶和 头奶牛。每头牛都必须被分配一个不同的箭靶顶点。对于 ,在时刻 :
- 箭靶 出现。
- 分配其顶点的 头奶牛向它们射箭。
- 如果奶牛的箭在击中所分配的顶点之前穿过箭靶内部,或未命中,则奶牛们的练习失败。
- 箭靶消失,为下一个箭靶腾出空间。
每头牛都位于 轴()上,每个箭靶都是一个矩形,其中箭靶 的左下顶点坐标为 ,右上顶点坐标为 。所有坐标满足 以及 (注意: 对于每个箭靶都是相同的)。
此外,每头奶牛都有一个正在钻研的「瞄准」角度。因此她们在射箭时会转向特定的角度。考虑到她们的箭从她们的位置沿直线射向指定的顶点,奶牛 的箭的轨迹可以用轨迹的斜率 ()来表示。
为了能够仔细检查奶牛们的技术,Farmer John 希望尽量缩短最远的奶牛之间的距离。如果 Farmer John 以最佳方式给每头奶牛分配箭靶顶点并将她们放置在 轴上,你能否帮助他求出最远奶牛之间的最小距离是多少,或者奶牛是否总是会练习失败?
每个测试点包含 ()个独立的测试用例。输入保证所有测试用例的 之和不超过 。
输入格式
输入的第一行包含 (),为测试用例的数量。每个测试用例的描述如下:
每个测试用例的第一行包含两个整数 和 ,分别为箭靶的数量以及所有箭靶的左端的 坐标。
以下 行,第 行包含三个整数 , 和 ,分别为第 个箭靶的下端 坐标,上端 坐标和右端 坐标。
最后一行包含 个整数 ,其中 表示奶牛 的射箭轨迹的斜率。
输出格式
输出最远奶牛之间的最小可能距离,或如果奶牛总是练习失败时输出 。
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
17
-1
11
提示
样例解释
对于测试用例 ,一个最佳分配方案是分别为奶牛 分配以下目标顶点:
这得出了奶牛 的 坐标如下:
这给出了最小距离 。
第二个测试用例的答案是不可能的原因之一是,如果箭不穿过箭靶 的内部,不可能射中 处的顶点(箭靶 的右上顶点)。
测试点性质
- 测试点 :对于所有的 , 均相同。
- 测试点 :所有测试用例的 之和不超过 。
- 测试点 :没有额外限制。