平衡的括号序列是指每一个左括号都有一个对应的右括号,且该右括号位于左括号之后。
请注意每一个右括号是如何与最近的未匹配左括号相匹配的。
我们定义一种替代括号表示法如下:每一个括号对对应一个形如 “start,end:” 的头部,其中 start 和 end 是新字符串本身的索引!索引 start 是紧跟在冒号 ‘:’ 之后的字符的索引,而 end 是对应于该括号对内包含的最后一个括号对的最后一个头部的后一个索引。通过截取新表示法中的子串 substring(start, end),你可以得到一个描述该 “start,end:” 所对应括号对内部所有括号对的替代括号序列!由于一对空的括号对内部没有任何内容,因此在它们的头部中,start 和 end 将是相等的。
每个索引在字符串中占用的字符数与其作为十进制数字时的位数相同(例如,索引 42 将占用 2 个字符)。新字符串中的索引从 0 开始。替代括号表示法字符串中出现的所有索引都是相对于新字符串起始位置的绝对索引。
考虑这个括号序列:(())
这是它在我们新的替代括号表示法中的形式:4,8:8,8:
在这个例子中,有两组匹配的括号,外层括号和内层括号。外层括号出现在内层括号之前,因为外层的左括号先出现。因此,外层括号的头部将出现在内层括号的头部之前。头部 4,8: 代表外层括号,而头部 8,8: 代表内层括号。从第 4 个字符到第 7 个字符的子串是 8,8:,它表示了外层括号内部包含的内容。
注意 5,11:11,11: 也可能是一种合法的替代表示法,但我们想要最短的那一种,这就是为什么 4,8:8,8: 是正确答案。
输入格式
每个输入包含一个测试用例。请注意,你的程序可能会在不同的输入上运行多次。输入由单行组成,包含一个字符串 $s$,该字符串仅由左括号和右括号组成。字符串 $s$ 的长度在 2 到 4,000 个字符之间。字符串中没有空格。保证字符串 $s$ 是平衡的。
输出格式
输出字符串 $s$ 在我们新的替代括号表示法下的形式。如果存在多种表示 $s$ 的方式,请选择最短的表示法,该表示法是唯一的。
样例
输入格式 1
(())
输出格式 1
4,8:8,8:
输入格式 2
()
输出格式 2
4,4:
输入格式 3
((())(()))()
输出格式 3
5,29:11,17:17,17:23,29:29,29:35,35: