这不比 A 火?这不比 A 火?这不比 A 火?这不比 A 火?

考虑每次加入一个 (Ai,Bi)(A_i, B_i) 并动态维护答案。考虑维护 L(x)L(x) 表示右端点为 xx 时左端点的最大值,那么 ans=min{xL(x)}ans = \min\{x - L(x)\}。显然 L(x)L(x) 单调不降。

假设 AiBiA_i \le B_i,设加入 (Ai,Bi)(A_i, B_i) 后的新的 L(x)L(x)L(x)L'(x),那么显然有:

L(x)={min(Bi,L(x))Bixmin(Ai,L(x))Aix<Bix<AiL'(x) = \begin{cases} \min(B_i, L(x)) & B_i \le x\\ \min(A_i, L(x)) & A_i \le x < B_i\\ -\infty & x < A_i\\ \end{cases}

由于 L(x)L(x) 单调不降,所以区间取 min\min 相当于区间推平,直接维护即可做到 O(nlogn)O(n \log n)

具体地,维护该函数的极长连续段 (l,r,y)(l, r, y) 的集合 SS(即 x[l,r]x \in [l, r]L(x)=yL(x) = y),那么 ans=min(l,r,y)S{ly}ans = \min_{(l, r, y) \in S}\{l - y\}。颜色段均摊分析得出 SS 最多变化 O(n)O(n) 次,同步维护 lyl - y 的集合即可。显然这是可以支持强制在线的。