Ограничение по времени: 3.000 секунд
Ограничение по памяти: 500.000 мегабайт
Алексей разрабатывает автономных дроидов, которые могут взаимодействовать между собой. Он уже построил n дроидов, пронумерованных от 1 до n слева направо. Алексей решил выбрать в качестве отряда подотрезок этой шеренги. То есть, всех дроидов с номерами от l до r для некоторых l и r (1 ≤ l ≤ r ≤ n). Каждый дроид характеризуется своим AIQ - коэффициентом искусственного интеллекта. AIQ дроида номер i равен ai.
Дроиды, находящиеся в одном отряде, могут объединяться в более продвинутых дроидов. Если в отряде есть два дроида с одинаковым AIQ, равным x, они могут объединиться в одного дроида с AIQ равным x+1.
Алексей хочет выбрать такой отряд, чтобы все дроиды из отряда могли, в результате нескольких объединений, стать одним дроидом. Помогите ему посчитать количество различных отрезков шеренги, которые он может выбрать в качестве искомого отряда.
В первой строке дано одно целое число n - количество дроидов в шеренге (1 ≤ n ≤ 200 000).
Во второй строке даны n целых чисел ai - коэффициенты искусственного интеллекта дроидов (1 ≤ ai ≤ 109).
В единственной строке выведите одно целое число - количество отрезков шеренги, которые Алексей может выбрать в качестве желаемого отряда.
input | output |
---|---|
3 1 1 2 |
5 |
7 3 4 3 5 3 4 3 |
13 |
В первом примере помимо трех подходящих отрезков длины 1, подходят отрезки [1, 1] и [1, 1, 2].
Во втором примере помимо семи подходящих отрезков длины 1, подходят все четыре отрезка длины 4, а также два отрезка [3, 4, 3].