C. 拆分表达式
每个测试用例的时间限制:2 秒
每个测试用例的内存限制:512 兆字节
给定一个形式为 <数字块>+<数字块>+…+<数字块> 的字符串 s。每个数字块包含至少 2 位且至多13 位数字;每个数字取值范围是 1 到 9。
你需要将这个字符串拆分成 <整数>+<整数> 形式的表达式。每个表达式必须是给定字符串的连续部分,并且给定字符串的每个字符都必须恰好属于一个表达式。例如,如果你有字符串 123+456+789+555,那么:
允许将其拆分为 123+4、56+7 和89+555;不允许将其拆分为 123+456 和 +789+555,因为第二部分以 + 号开头;
不允许将其拆分为 123+4、56+7、8$ 和 9+555,因为第三部分不包含 + 号;
不允许将其拆分为 123+456+78 和 9+555,因为第一部分包含两个 + 号。
在所有允许的拆分方式中,找到一种能使所有表达式结果之和最大的拆分方式,并输出这个和。
输入
第一行包含一个整数 t(1≤t≤100)—— 测试用例的数量。
每个测试用例由一行包含字符串s(5≤∣s∣≤1000)组成,字符串形式为 <数字块>+<数字块>+…+<数字块>。字符串至少包含一个 + 号。每个数字块包含至少 2位且至多 13 位数字;每个数字取值范围是 1 到 9。
输出
对于每个测试用例,输出一个整数 —— 拆分字符串后所有表达式结果的最大可能和。
示例
输入
3
123+456+789+555
13+37
9999999999999+1111111111111+9999999999999
输出
834
50
20111111111110
注释
在示例的第一个测试用例中,你应该将字符串拆分为表达式 123+4、56+7 和89+555。这些表达式结果的和是 834。
在示例的第二个测试用例中,给定的字符串已经是一个有效的表达式,不能再进一步拆分。