#P16092. [ICPC 2024 NAC] Shadow Line

[ICPC 2024 NAC] Shadow Line

题目描述

你在二维平面的原点处有一个点光源。右侧有一堵无限高的墙。在光源和墙壁之间有一些不透明的垂直线段。因此,每条线段都会在墙上投射出一个阴影。所有这些阴影重叠后,在墙上形成一个或多个区间。

:::align{center} :::

现在,想象将光源沿 xx 轴负方向移动,即沿直线将光源拉离所有物体。随着光源的移动,阴影也会移动,这可能会改变墙上阴影区间的数量。你的任务是计算在 xx 轴上使得光源在墙上只产生一个阴影区间的那些位置的区间长度之和。

输入格式

输入的第一行包含两个整数 nn1n3,0001 \le n \le 3{,}000)和 ww2w1062 \le w \le 10^6),其中 nn 是不透明垂直线段的数量,ww 是无限高墙的 xx 坐标。

接下来的 nn 行,每行包含三个整数 xx0<x<w0 < x < w)、ylowy_{\text{low}}yhighy_{\text{high}}($-10^6 \le y_{\text{low}} < y_{\text{high}} \le 10^6$)。每组三个整数描述一条从 (x,ylow)(x, y_{\text{low}})(x,yhigh)(x, y_{\text{high}}) 的线段。所有 yy 坐标互不相同。没有两条线段相交或重叠。

输出格式

输出一个实数,表示在 xx 轴上使得光源在墙上只产生一个阴影区间的那些位置的区间长度之和。如果这个和包含一个无界区间(即当光源位于无穷远处时只产生一个阴影区间),则输出 1-1。如果答案与标准答案的绝对误差或相对误差不超过 10610^{-6},则视为正确。

3 20
2 1 3
6 -4 2
12 -10 -5
16.0

提示

翻译由 DeepSeek V3.2 完成