AT_abc452_g [ABC452G] 221 Substring
Description
正整数からなる数列 $ X = (X_1, \dots, X_n) $ に対し、その連長圧縮の任意の (長さ・値) ペアにおいて長さと値が等しいとき、かつそのときに限り、 $ X $ を **221 数列** と呼びます。より厳密には、以下の条件を満たす数列を 221 数列であるとします。
- $ 1 \leq l \leq r \leq n $ を満たす整数組 $ (l, r) $ が以下の $ 3 $ つの条件をすべて満たすならば、必ず $ (r-l+1) = X_l $ が成り立つ。
- $ l = 1 $ または ( $ l \geq 2 $ かつ $ X_{l-1} \neq X_l $ )
- $ r = n $ または ( $ r \leq n-1 $ かつ $ X_{r+1} \neq X_r $ )
- $ X_l = X_{l+1} = \dots = X_r $
たとえば、 $ (2,2,3,3,3,1,2,2) $ は 221 数列ですが、 $ (1,1) $ や $ (4,4,1,4,4) $ は 221 数列ではありません。
長さ $ N $ の正整数列 $ A = (A_1, \dots, A_N) $ が与えられます。 $ A $ の空でない**連続部分列**として現れる 221 数列としてあり得るものの個数を求めてください。
ただし、異なる位置から取り出した連続部分列であっても、数列として一致するものは区別せずまとめて $ 1 $ 通りとして数えます。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $
Output Format
答えを $ 1 $ 行に出力せよ。
Explanation/Hint
### Sample Explanation 1
$ A $ の空でない連続部分列として現れる 221 数列は、以下の $ 14 $ 通りです。
- $ (1) $
- $ (1,2,2) $
- $ (1,3,3,3) $
- $ (1,3,3,3,1) $
- $ (1,3,3,3,1,2,2) $
- $ (1,4,4,4,4) $
- $ (2,2) $
- $ (2,2,1) $
- $ (2,2,3,3,3) $
- $ (2,2,3,3,3,1) $
- $ (3,3,3) $
- $ (3,3,3,1) $
- $ (3,3,3,1,2,2) $
- $ (4,4,4,4) $
### Sample Explanation 2
$ A $ の空でない連続部分列として現れる 221 数列は存在しません。
### Constraints
- $ 1 \leq N \leq 500\,000 $
- $ 1 \leq A_i \leq 9 $
- 入力される値はすべて整数