编程题
### 问题描述 小椒并不喜欢括号序列,但是却总有出题人出括号序列的题。 所以为保证今晚能睡个好觉,他决定把这个题目留给你解决。 有一个长度为 $m$ 的括号序列,求出该序列有多少个合法的子串是合法的括号序列。 因为 $n$ 过大,所以我们用一个长度为 $n$ 的数组表示,数组中的数均为正整数。第 $i(1\le i \le n)$ 个数,假如 $i$ 是奇数则代表有 $a\left [ i \right ] $ 个 "(",假如 $i$ 是偶数的话代表 $a\left [ i \right ] $ 个 ")"。 一个括号序列如果可以通过插入 ‘+’,‘1’ 变成一个正确的算术表达式,可以被认为是好的。 形如 `( )`,`( ( ) )`,`( ) ( ) ( ( ) )` 这样的形式,表示左右括号能够完全匹配。 ### 输入格式 第一行输入一个 $n$,代表数组的长度 $(1 \le n \le 10^{6})$。 第二行输入 $n$ 个正整数,$a\left [ 1 \right ] ,a\left [ 2 \right ], a\left [ 3 \right ] \dots a\left [ n \right ] $。保证数组中的元素不大于 $10^{9}$。 ### 输出格式 输出一个整数,代表合法子串的个数。 ### 样例输入 ```text 6 1 1 1 1 2 2 ``` ### 样例输出 ```text 7 ``` ### 说明 题意所描述的括号序列如下:`( ) ( ) ( ( ) )`。 共有七个合法子串: 1、第 $1$ 个到第 $2$ 个:`( )`。 2、第 $1$ 个到第 $4$ 个:`( ) ( )`。 3、第 $1$ 个到第 $8$ 个:`( ) ( ) ( ( ) )`。 4、第 $3$ 个到第 $4$ 个:`( )`。 5、第 $3$ 个到第 $8$ 个:`( ) ( ( ) )`。 6、第 $5$ 个到第 $8$ 个:`( ( ) )`。 7、第 $6$ 个到第 $7$ 个:`( )`。
查看答案
赣ICP备20007335号-2