题目背景
小 C 喜欢带有区间操作的数据结构,因为这样的题总会有一档好写的 O(n2) 部分分。
题目描述
本题读入量较大,建议使用较快的读入方式,可以参考 赛时公告板
小 C 有一个长度为 n 的序列 a,第 i 项为 ai。
a 是一个 1∼n 的排列(即 1∼n 在 a 中各出现一次)。
定义 Mexl,r 为 {al,al+1,⋯,ar−1,ar} 中没有出现过的最小正整数。
例如,Mex{2,3}=1,Mex{1,2,3}=4。
小 C 还有一个长度为 n 的数列 f。
定义一个区间 [l,r] 是合法的当且仅当
fr−l+1<Mexl,r
小 C 希望你告诉他,最短的合法区间的长度是多少,特别的,如果没有区间合法,则输出 0
。
输入格式
第一行一个正整数 n。
第二行 n 个正整数 a1,a2,⋯,an。
第三行 n 个正整数 f1,f2,⋯,fn。
输出格式
一行一个整数,表示最短的合法区间长度。
提示
【样例解释】
对于 #1,容易发现 [1,3] 是最短的合法区间。
对于 #2,容易发现 [3,3] 是最短的合法区间。
对于 #3,容易发现没有合法的区间。
对于 10% 的数据,满足 1≤n≤100。
对于 20% 的数据,满足 1≤n≤1000。
对于另外 10% 的数据,满足 f 不升,即满足 f1≥f2≥⋯≥fn,且 1≤n≤106。
对于 100% 的数据,满足 1≤n≤4×106,1≤fi≤109。