using System;
using System.Collections.Generic;
public class Test
{
private static void SplitAndPrint(string prefix, string s) {
s = s.Trim();
while (s.Length > 0 && s[0] == '(' && s[s.Length - 1] == ')') {
s = s.Substring(1, s.Length - 2);
prefix += " ";
}
var parts = new List<string>();
var parenLevel = 0;
var lastPos = 0;
for (var i = 0 ; i != s.Length ; i++) {
switch (s[i]) {
case '(':
parenLevel++;
break;
case ')':
parenLevel--;
if (parenLevel < 0) {
throw new ArgumentException();
}
break;
case ',':
if (parenLevel == 0) {
parts.Add(s.Substring(lastPos, i-lastPos));
lastPos = i + 1;
}
break;
}
}
if (lastPos != s.Length) {
parts.Add(s.Substring(lastPos, s.Length - lastPos));
}
if (parts.Count == 1) {
Console.WriteLine("{0}{1}", prefix, parts[0]);
return;
}
prefix += " ";
foreach (var part in parts) {
SplitAndPrint(prefix, part);
}
}
public static void Main()
{
SplitAndPrint("", "value1,value2,(value3,(value4, value5, value6, (value7), value8),(((value9),value10),value11))");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgU3BsaXRBbmRQcmludChzdHJpbmcgcHJlZml4LCBzdHJpbmcgcykgewogICAgICAgIHMgPSBzLlRyaW0oKTsKICAgICAgICB3aGlsZSAocy5MZW5ndGggPiAwICYmIHNbMF0gPT0gJygnICYmIHNbcy5MZW5ndGggLSAxXSA9PSAnKScpIHsKICAgICAgICAgICAgcyA9IHMuU3Vic3RyaW5nKDEsIHMuTGVuZ3RoIC0gMik7CiAgICAgICAgICAgIHByZWZpeCArPSAiICAiOwogICAgICAgIH0KICAgICAgICB2YXIgcGFydHMgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAgICAgdmFyIHBhcmVuTGV2ZWwgPSAwOwogICAgICAgIHZhciBsYXN0UG9zID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMCA7IGkgIT0gcy5MZW5ndGggOyBpKyspIHsKICAgICAgICAgICAgc3dpdGNoIChzW2ldKSB7CiAgICAgICAgICAgICAgICBjYXNlICcoJzoKICAgICAgICAgICAgICAgICAgICBwYXJlbkxldmVsKys7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICcpJzoKICAgICAgICAgICAgICAgICAgICBwYXJlbkxldmVsLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVuTGV2ZWwgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJywnOgogICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbkxldmVsID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMuQWRkKHMuU3Vic3RyaW5nKGxhc3RQb3MsIGktbGFzdFBvcykpOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0UG9zID0gaSArIDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChsYXN0UG9zICE9IHMuTGVuZ3RoKSB7CiAgICAgICAgICAgIHBhcnRzLkFkZChzLlN1YnN0cmluZyhsYXN0UG9zLCBzLkxlbmd0aCAtIGxhc3RQb3MpKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcnRzLkNvdW50ID09IDEpIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoInswfXsxfSIsIHByZWZpeCwgcGFydHNbMF0pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHByZWZpeCArPSAiICAiOwogICAgICAgIGZvcmVhY2ggKHZhciBwYXJ0IGluIHBhcnRzKSB7CiAgICAgICAgICAgIFNwbGl0QW5kUHJpbnQocHJlZml4LCBwYXJ0KTsKICAgICAgICB9CiAgICB9CQoJCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJU3BsaXRBbmRQcmludCgiIiwgInZhbHVlMSx2YWx1ZTIsKHZhbHVlMywodmFsdWU0LCB2YWx1ZTUsIHZhbHVlNiwgKHZhbHVlNyksIHZhbHVlOCksKCgodmFsdWU5KSx2YWx1ZTEwKSx2YWx1ZTExKSkiKTsKCX0KfQ==