CF1556C.Compressed Bracket Sequence

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

William has a favorite bracket sequence. Since his favorite sequence is quite big he provided it to you as a sequence of positive integers c1,c2,…,cnc_1, c_2, \dots, c_n where cic_i is the number of consecutive brackets "(" if ii is an odd number or the number of consecutive brackets ")" if ii is an even number.

For example for a bracket sequence "((())()))" a corresponding sequence of numbers is [3,2,1,3][3, 2, 1, 3].

You need to find the total number of continuous subsequences (subsegments) [l,r][l, r] (l≤rl \le r) of the original bracket sequence, which are regular bracket sequences.

A bracket sequence is called regular if it is possible to obtain correct arithmetic expression by inserting characters "+" and "1" into this sequence. For example, sequences "(())()", "()" and "(()(()))" are regular, while ")(", "(()" and "(()))(" are not.

威廉有一个最喜爱的括号序列。由于该序列长度较大,他以一个正整数序列 c1,c2,…,cnc_1, c_2, \dots, c_n 的形式提供给你:当 ii 为奇数时,cic_i 表示连续左括号 "(" 的个数;当 ii 为偶数时,cic_i 表示连续右括号 ")" 的个数。

例如,对于括号序列 "((())()))",其对应的数字序列为 [3,2,1,3][3, 2, 1, 3]。

你需要计算原始括号序列中,有多少个连续子序列(即子区间)[l,r][l, r](满足 l≤rl \le r)是合法括号序列(regular bracket sequence)。

若能通过向该括号序列中插入字符 "+" 和 "1" 得到一个合法的算术表达式,则称该括号序列为合法括号序列。例如,"(())()"、"()" 和 "(())(()))" 是合法的,而 ")("、"(()" 和 "(())(" 则不是。

输入格式

The first line contains a single integer nn (1≤n≤1000)(1 \le n \le 1000), the size of the compressed sequence.

The second line contains a sequence of integers c1,c2,…,cnc_1, c_2, \dots, c_n (1≤ci≤109)(1 \le c_i \le 10^9), the compressed sequence.

第一行包含一个整数 nn (1≤n≤1000)(1 \le n \le 1000),表示压缩序列的长度。

第二行包含一个整数序列 c1,c2,…,cnc_1, c_2, \dots, c_n (1≤ci≤109)(1 \le c_i \le 10^9),即压缩序列。

输出格式

Output a single integer — the total number of subsegments of the original bracket sequence, which are regular bracket sequences.

It can be proved that the answer fits in the signed 64-bit integer data type.

输出一个整数——原括号序列中,合法括号序列的子段总数。

可以证明,答案在有符号 64 位整数数据类型范围内。

输入输出样例

  • 输入#1

    5
    4 1 2 3 1

    输出#1

    5
  • 输入#2

    6
    1 3 2 1 2 4

    输出#2

    6
  • 输入#3

    6
    1 1 1 1 2 2

    输出#3

    7

说明/提示

In the first example a sequence (((()(()))( is described. This bracket sequence contains 55 subsegments which form regular bracket sequences:

  1. Subsequence from the 33rd to 1010th character: (()(()))
  2. Subsequence from the 44th to 55th character: ()
  3. Subsequence from the 44th to 99th character: ()(())
  4. Subsequence from the 66th to 99th character: (())
  5. Subsequence from the 77th to 88th character: ()

In the second example a sequence ()))(()(()))) is described.

In the third example a sequence ()()(()) is described.

在第一个例子中,描述了一个括号序列 (((()(()))( 。该括号序列包含 55 个构成规则括号序列的子段:

  1. 第 33 个到第 1010 个字符构成的子序列:(()(()))
  2. 第 44 个到第 55 个字符构成的子序列:()
  3. 第 44 个到第 99 个字符构成的子序列:()((
  4. 第 66 个到第 99 个字符构成的子序列:(())
  5. 第 77 个到第 88 个字符构成的子序列:()

在第二个例子中,描述了一个括号序列 ()))(()(())))。

在第三个例子中,描述了一个括号序列 ()()(())。

输入解题思路,AI测评打分。不知道怎么写?

首页