会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员,或
购买
该题目所属题库
,可解锁完整内容。
解题思路
对于一个长度为 k 的子数组,若它的 mex≥x,说明它必须包含所有数 0,1,…,x−1。
由于原数组是 0 到 n−1 的排列,每个数只出现一次。设包含 0,1,…,x−1 这些数的位置最左为 L,最右为 R,那么任意子数组想要包含这些数,长度至少需要:
R−L+1
题目内容
给定长度为 n 的排列 {a1,a2,…,an},对 1≤k≤n 定义
f(k)=i=1maxn−k+1(mex(ai,ai+1,…,ai+k−1))
求区间 [1,n−1] 中有多少 k 满足 f(k)=f(k+1)。
mex 是没有出现在数组中的最小非负整数;长度 n 的排列是由 0,1,…,n−1 按任意顺序构成的数组(每个值恰好出现一次)。
输入描述
第一行包含整数 n(2≤n≤105)。
第二行包含 n 个整数 a1,a2,…,an(0≤ai≤n−1)。
输出描述
一个整数,表示满足条件的 k 的个数。
样例1
输入
5
2 3 1 0 4
输出
1