Codeforces Round 165 (Div. 1)
D
Maximum Waterfall
Codeforces
2600
原题
← CE →
翻译中…

Emuskald was hired to design an artificial waterfall according to the latest trends in landscape architecture. A modern artificial waterfall consists of multiple horizontal panels affixed to a wide flat wall. The water flows down the top of the wall from panel to panel until it reaches the bottom of the wall.

翻译中…

The wall has height $*t*$ and has $*n*$ panels on the wall. Each panel is a horizontal segment at height $*h*_{*i*}$ which begins at $*l*_{*i*}$ and ends at $*r*_{*i*}$. The $*i*$-th panel connects the points $(*l*_{*i*}, *h*_{*i*})$ and $(*r*_{*i*}, *h*_{*i*})$ of the plane. The top of the wall can be considered a panel connecting the points $( - 10^{9}, *t*)$ and $(10^{9}, *t*)$. Similarly, the bottom of the wall can be considered a panel connecting the points $( - 10^{9}, 0)$ and $(10^{9}, 0)$. No two panels share a common point.

翻译中…

Emuskald knows that for the waterfall to be aesthetically pleasing, it can flow from panel $*i*$ to panel $*j*$ (image) only if the following conditions hold:

翻译中…
  1. $*max*(*l*_{*i*}, *l*_{*j*}) < *min*(*r*_{*i*}, *r*_{*j*})$ (horizontal projections of the panels overlap);
  2. $*h*_{*j*} < *h*_{*i*}$ (panel $*j*$ is below panel $*i*$);
  3. there is no such panel $*k*$ $(*h*_{*j*} < *h*_{*k*} < *h*_{*i*})$ that the first two conditions hold for the pairs $(*i*, *k*)$ and $(*k*, *j*)$.
翻译中…

Then the flow for image is equal to $*min*(*r*_{*i*}, *r*_{*j*}) - *max*(*l*_{*i*}, *l*_{*j*})$, the length of their horizontal projection overlap.

翻译中…

Emuskald has decided that in his waterfall the water will flow in a single path from top to bottom. If water flows to a panel (except the bottom of the wall), the water will fall further to exactly one lower panel. The total amount of water flow in the waterfall is then defined as the minimum horizontal projection overlap between two consecutive panels in the path of the waterfall. Formally:

翻译中…
  1. the waterfall consists of a single path of panels image;
  2. the flow of the waterfall is the minimum flow in the path image.
翻译中…

To make a truly great waterfall Emuskald must maximize this water flow, but there are too many panels and he is having a hard time planning his creation. Below is an example of a waterfall Emuskald wants:

翻译中…

image

翻译中…

Help Emuskald maintain his reputation and find the value of the maximum possible water flow.

翻译中…

Input

翻译中…

The first line of input contains two space-separated integers $*n*$ and $*t*$ ($1 ≤ *n* ≤ 10^{5}$, $2 ≤ *t* ≤ 10^{9}$), the number of the panels excluding the top and the bottom panels, and the height of the wall. Each of the $*n*$ following lines contain three space-separated integers $*h*_{*i*}$, $*l*_{*i*}$ and $*r*_{*i*}$ ($0 < *h*_{*i*} < *t*$, $- 10^{9} ≤ *l*_{*i*} < *r*_{*i*} ≤ 10^{9}$), the height, left and right ends of the $*i*$-th panel segment.

翻译中…

It is guaranteed that no two segments share a common point.

翻译中…

Output

翻译中…

Output a single integer — the maximum possible amount of water flow in the desired waterfall.

翻译中…

Note

翻译中…

The first test case corresponds to the picture.

翻译中…

样例

Input #1
5 6
4 1 6
3 2 7
5 9 11
3 10 15
1 13 16
Output #1
4
InputCopy OutputCopy
Input #2
6 5
4 2 8
3 1 2
2 2 3
2 6 12
1 0 7
1 8 11
Output #2
2
InputCopy OutputCopy
题目信息
题号
269D
时间限制
2 s
内存限制
256 MB
标签
数据结构
动态规划
图论
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。