#CF1373C. 加号与减号

加号与减号

题目描述

每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节

你得到一个只包含字符 +- 的字符串 ss。你对该字符串执行以下过程,该过程可以用下面的伪代码描述: res = 0 for init = 0 to inf cur = init ok = true for i = 1 to |s| res = res + 1 if s[i] == '+' cur = cur + 1 else cur = cur - 1 if cur < 0 ok = false break if ok break 注意,inf 表示无穷大,字符串的字符编号从 11s|s|

你需要计算过程结束后 res 的值。


输入

第一行包含一个整数 tt1t10001 \le t \le 1000)—— 测试用例的数量。

每个测试用例只有一行,包含字符串 ss1s1061 \le |s| \le 10^6),字符串仅由字符 +- 组成。

保证所有测试用例的 s|s| 之和不超过 10610^6

输入格式

第一行包含一个整数 tt1t10001 \le t \le 1000)—— 测试用例的数量。

每个测试用例只有一行,包含字符串 ss1s1061 \le |s| \le 10^6),字符串仅由字符 +- 组成。

保证所有测试用例的 s|s| 之和不超过 10610^6

输出格式

对于每个测试用例,输出一个整数 —— 过程结束后 res 的值。

3
--+-
---
++--+-
7
9
6