CF653F.Paper task

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Alex was programming while Valentina (his toddler daughter) got there and started asking many questions about the round brackets (or parenthesis) in the code. He explained her a bit and when she got it he gave her a task in order to finish his code on time.

For the purpose of this problem we consider only strings consisting of opening and closing round brackets, that is characters '(' and ')'.

The sequence of brackets is called correct if:

  1. it's empty;
  2. it's a correct sequence of brackets, enclosed in a pair of opening and closing brackets;
  3. it's a concatenation of two correct sequences of brackets.

For example, the sequences "()()" and "((()))(())" are correct, while ")(()", "(((((" and "())" are not.

Alex took a piece of paper, wrote a string ss consisting of brackets and asked Valentina to count the number of distinct non-empty substrings of ss that are correct sequences of brackets. In other words, her task is to count the number of non-empty correct sequences of brackets that occur in a string ss as a substring (don't mix up with subsequences).

When Valentina finished the task, Alex noticed he doesn't know the answer. Help him don't loose face in front of Valentina and solve the problem!

输入格式

The first line of the input contains an integer nn ( 1<=n<=5000001<=n<=500000 ) — the length of the string ss .

The second line contains a string ss of length nn consisting of only '(' and ')'.

输出格式

Print the number of distinct non-empty correct sequences that occur in ss as substring.

输入输出样例

  • 输入#1

    10
    ()()()()()
    

    输出#1

    5
    
  • 输入#2

    7
    )(())()
    

    输出#2

    3
    

说明/提示

In the first sample, there are 55 distinct substrings we should count: "()", "()()", "()()()", "()()()()" and "()()()()()".

In the second sample, there are 33 distinct substrings we should count: "()", "(())" and "(())()".

首页