采用滑动窗口 + 优先队列(堆) + 懒删除。
对于当前窗口 [l,r],定义:
机房按天记录服务器机柜温度。第 i 天的读数是一个闭区间 [ai,bi],表示真实温度(取整数刻度)可能落在该区间内。共有 m 天记录,并按日期先后排列。
需要选出一段非空的连续日期,下标记为 [p,q]。在这段日期中,允许至多把一天的记录当作故障并丢弃,也可以一天都不丢。丢弃后至少还要留下一天记录,并且存在整数 t,落在每一条保留记录的闭区间内。换言之,未丢弃的那些天里,真实温度都有可能取同一个整数 t。
所选连续段的跨度定义为 q−p+1;被丢弃的那一天仍然计入跨度。请给出合法跨度的最大值。
首行给出整数 m(1≤m≤2×105),即记录天数。
第二行 m 个整数 a1,a2,…,am。
第三行 m 个整数 b1,b2,…,bm。
保证对每个 i 都有 1≤ai≤bi≤109。本题仅一组数据。
输出一个整数,即合法连续日期跨度的最大值。
输入
5
1 2 8 3 4
5 4 9 6 7
输出
5
说明
取全部 5 天,丢弃第 3 天的 [8,9]。其余四天都包含 4,长度为 5。
输入
6
1 2 3 4 5 6
2 4 5 6 7 8
输出
4
说明
例如取前 4 天并丢弃第 1 天,其余三天都包含 4。不存在长度为 5 的合法段。
输入
2
1 100
1 100
输出
2
说明
两天区间不相交,可丢弃其中任意一天,仍保留一天记录,故长度 2 合法。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册