AT_codefestival_2015_final_h 焼肉の達人

题目描述

A 先生是烤肉达人。 A 先生打算用 $N$ 块肉、长 $M$ 的细长网和炭来烤肉。肉 $i$ 的长度是 $L_i$。将网的一端坐标设为 $0$,另一端坐标设为 $M$。 最初,肉 $i$ 放在坐标 $S_i$ 的位置。也就是说,肉 $i$ 覆盖了从网的坐标 $S_i$ 到坐标 $S_i+L_i$ 的区间。A先生决定先拿去一些肉,然后在网下的木炭上点火。 烤肉的时候,肉重叠的部分会被烧焦。另外,不能吃烤前去除的肉 选择好去除的肉后,请求出未烧焦部分的长度和的最大值。换个意思来说,未烧焦部分的长度之和,正好和一张被肉覆盖的网区间的长度之和一样。

输入格式

格式如下 >$N$ $M$ > >$S_1$ $L_1$ > >$S_2$ $L_2$ > >$……$ > >$S_N$ $L_N$ 第1行中输入两个整数 $N(1\le N\le 10^5)$,$M(1\le M\le 10^5)$。表 $N$ 块肉和网的长度 $M$。 接下来的 $N$ 行是肉的情况。其中,第 $i(1\le i\le N)$ 行输入两个整数 $S_i, L_i$,表示肉 $i$ 的初始坐标 $S_i$ 和肉 $i$ 的长度 $L_i$。

输出格式

输出只有一行,即未烧焦部分的长度之和的最大值。末尾要换行。

说明/提示

下图分别是最初排列肉时的样子,去除肉 $3$ 烤时的样子。用绿色框围起来的部分是未烧焦的部分 ![figure1](https://code-festival-2015-final.contest.atcoder.jp/img/other/code_festival_2015_final/final/yakitatsu.png)