#P2639. Necklace Decomposition
Necklace Decomposition
描述
</h2>
字符串的**循环旋转集合**是将字符串顺时针嵌入环中得到的字符串集合:将字符串首尾相连形成环,从任意字符位置开始顺时针遍历,直到回到起始位置的前一个字符为止。若一个字符串是其所有循环旋转中字典序最小的,则称其为**项链**。例如,字符串$01011$的循环旋转为$(10110, 01101, 11010, 10101, 01011)$,其中$01011$是最小字符串,因此是一个项链。
任意字符串均可唯一表示为项链的连接,满足:
- 对所有,有;
- 对所有,不是项链。
这种表示称为字符串的项链分解,你的任务是找到该分解。
字符串上的关系是字典序,定义为:若是的真前缀,或与的前位相同但第位更小,则。例如,,。
输入
输入第一行是一个正整数,表示测试用例的数量。每个用例包含一行非空的01字符串,长度不超过。
输出
对每个用例,输出一行字符串的项链分解,每个项链用括号包裹,格式为(项链)。
输入数据1
5
0
0101
0001
0010
11101111011
输出数据1
(0)
(0101)
(0001)
(001)(0)
(111)(01111)(011)
来源
2005年北欧竞赛