TopCoder

餘切
$\huge\text{owoovo is 8}$

User's AC Ratio

100.0% (14/14)

Submission's AC Ratio

88.5% (23/26)

Tags

Description

括號國是一個奇怪的國家,那裡的人民非常喜歡左小括號 $\texttt{(}$ 以及右小括號 $\texttt{)}$,因此兩個括號國的人民很常使用括號語作為溝通的方式。舉例來說:

「$\texttt{))(()()}$」

「$\texttt{)()(()()()}$」

上述呈現了兩個人的對話,其中一個人在膜拜,另一個人在裝弱。

在那裡的競程選手也喜歡使用括號語來表示一道題目,像是:

「$\texttt{)()))(()())))(()())))()()()))()()))()((()))()))))((())}$」

經由翻譯後,這道題目的意思是:

「給定一個由 $\texttt{()}$ 組成的字串,請問它所有子字串的最長合法括號子序列長度總和為何?」

你不想輸給括號國的競程選手,因此請想辦法解決這個問題。

一個括號字串為合法括號若它滿足以下條件:

  • 該字串的 $\texttt{(}$ 與 $\texttt{)}$ 出現次數相同
  • 對於該字串的任意前綴,其 $\texttt{(}$ 的數量皆不小於 $\texttt{)}$

一個括號字串 $s_1s_2 \ldots s_N$ 的最長合法括號子序列為最長的序列 $a_1 < a_2 < \ldots < a_K$ 使 $s_{a_1}s_{a_2} \ldots s_{a_K}$ 是一個合法括號。

一個長度為 $N$ 的字串有 $\binom{N + 1}{2}$ 個子字串,對於任意 $1 \leq l \leq r \leq N$,$s_ls_{l + 1} \ldots s_r$ 皆為字串 $s$ 的子字串。

Input Format

輸入第一行有一個整數 $N$,代表括號字串的長度。

輸入第二行有一個由 $\texttt{(}$ 與 $\texttt{)}$ 組成的字串 $S$。

  • $1 \leq N \leq 2 \times 10^ 5$
  • $|S| = N$
  • $S_i \in \lbrace\texttt{(}, \texttt{)}\rbrace$

Output Format

請輸出一行,上面有一個數字代表答案。

Sample Input 1

4
()()

Sample Output 1

12

Sample Input 2

8
)))(((((

Sample Output 2

0

Sample Input 3

7
)(()))(

Sample Output 3

36

Hints

令 $f(l, r)$ 為 $S_lS_{l + 1}, \ldots ,S_r$ 的最長合法括號子序列長度,以下為範例測資一中所有可能的函數值:

  • $f(1, 1) = 0$
  • $f(2, 2) = 0$
  • $f(3, 3) = 0$
  • $f(4, 4) = 0$
  • $f(1, 2) = 2$
  • $f(2, 3) = 0$
  • $f(3, 4) = 2$
  • $f(1, 3) = 2$
  • $f(2, 4) = 2$
  • $f(1, 4) = 4$

而答案為所有數值加總,也就是 $12$。

Problem Source

IOICamp 2023 Day3 pE

Subtasks

No. Testdata Range Constraints Score
1 0~2 範例測資 0
2 0~35 $N \leq 2000$ 40
3 0~75 無其他限制 60

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2 3
1 1000 524288 65536 1 2 3
2 1000 524288 65536 1 2 3
3 1000 524288 65536 2 3
4 1000 524288 65536 2 3
5 1000 524288 65536 2 3
6 1000 524288 65536 2 3
7 1000 524288 65536 2 3
8 1000 524288 65536 2 3
9 1000 524288 65536 2 3
10 1000 524288 65536 2 3
11 1000 524288 65536 2 3
12 1000 524288 65536 2 3
13 1000 524288 65536 2 3
14 1000 524288 65536 2 3
15 1000 524288 65536 2 3
16 1000 524288 65536 2 3
17 1000 524288 65536 2 3
18 1000 524288 65536 2 3
19 1000 524288 65536 2 3
20 1000 524288 65536 2 3
21 1000 524288 65536 2 3
22 1000 524288 65536 2 3
23 1000 524288 65536 2 3
24 1000 524288 65536 2 3
25 1000 524288 65536 2 3
26 1000 524288 65536 2 3
27 1000 524288 65536 2 3
28 1000 524288 65536 2 3
29 1000 524288 65536 2 3
30 1000 524288 65536 2 3
31 1000 524288 65536 2 3
32 1000 524288 65536 2 3
33 1000 524288 65536 2 3
34 1000 524288 65536 2 3
35 1000 524288 65536 2 3
36 1000 524288 65536 3
37 1000 524288 65536 3
38 1000 524288 65536 3
39 1000 524288 65536 3
40 1000 524288 65536 3
41 1000 524288 65536 3
42 1000 524288 65536 3
43 1000 524288 65536 3
44 1000 524288 65536 3
45 1000 524288 65536 3
46 1000 524288 65536 3
47 1000 524288 65536 3
48 1000 524288 65536 3
49 1000 524288 65536 3
50 1000 524288 65536 3
51 1000 524288 65536 3
52 1000 524288 65536 3
53 1000 524288 65536 3
54 1000 524288 65536 3
55 1000 524288 65536 3
56 1000 524288 65536 3
57 1000 524288 65536 3
58 1000 524288 65536 3
59 1000 524288 65536 3
60 1000 524288 65536 3
61 1000 524288 65536 3
62 1000 524288 65536 3
63 1000 524288 65536 3
64 1000 524288 65536 3
65 1000 524288 65536 3
66 1000 524288 65536 3
67 1000 524288 65536 3
68 1000 524288 65536 3
69 1000 524288 65536 3
70 1000 524288 65536 3
71 1000 524288 65536 3
72 1000 524288 65536 3
73 1000 524288 65536 3
74 1000 524288 65536 3
75 1000 524288 65536 3