括号序列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个字符串 S,其仅由字符 `(`、`)`、`.` 以及数字字符(`0`–`9`)组成。

我们称一个子串为**好括号**,当且仅当满足以下条件:

1. 该子串以 `(` 开头,以 `)` 结尾;
2. 括号内部不包含字符 `(` 或 `)`;
3. 括号内部由若干个**正整数**和字符 `.` 构成;
4. 其中的正整数是由连续的数字字符组成的**十进制表示**(不含符号);
6. 括号内部允许以 `.` 结尾和开头;
7. 括号内部至少包含一个正整数。

一个好括号的**权值**定义为其中所有正整数的和,即
\sum_{i=1}^{k} a_i
其中 a_i 表示第 i 个正整数。


例如:
- `(2.4.92)` 是好括号,权值为 2+4+92=98
- `(1.12.)` 是好括号,权值为 1+12=13
- `(.1.2)` 是好括号(以 `.` 开头);
- `(1..2)` 是好括号(存在连续的 `.`);
- `(1.2(` 不是好括号(包含非法括号)。

输入描述:

输入一行,包含一个字符串 S

输出描述:

输出一行一个整数,表示权值最大的好括号。
示例1

输入

复制
(21.4(1()2)

输出

复制
0
示例2

输入

复制
(3.32.1)1(3.46.)2)

输出

复制
49

备注:

对于 50\% 的数据,满足 2\le |S|\le 5000

另有 20\% 的数据,只会存在 `(` 与 `)`。

对于 100\% 的数据,满足 2\le |S| \le 10^6,且字符串第一个字符为 `(`,最后一个字符为 `)`。且每个数字的大小在 100 以内。