package 第4讲枚举模拟与排序;
import java.util.Scanner;
public class 例题_1210连号区间数 {
/**
* 注意给出的数据就包含1~n的所有数,并且每个数字只出现一次。
* 两重循环,第一重循环固定左端点,第二重循环固定右端点
* 思路:在区间l~r中找到最大值max和最小值min,如果max - min == r - l,
* 说明当前区间是递增且连续的
* 例如:一个区间[4,6,7,5] max = 7, min = 4, 7 - 4 == 3 - 0, 所以是连续的
* 一个区间[5,3,2,6] max = 6, min = 2, 6 - 2 != 3 - 0, 所以不是连续的
*/
static Scanner in = new Scanner(System.in);
static int N = 10010;
static int n;
static int[] a = new int[N];
public static void main(String[] args) {
n = in.nextInt();
for (int i = 0; i < n; i ++) a[i] = in.nextInt();
int ans = 0;
for (int i = 0; i < n; i ++) {
// 由于区间不断一直变大,max和min只会不断变大和变小
// 所以不需要对每一个新区间都遍历一次
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int j = i; j < n; j ++) {
min = Math.min(min, a[j]);
max = Math.max(max, a[j]);
if (max - min == j - i) ans ++;
}
}
System.out.println(ans);
}
}