[COCI2015-2016#7] Nizovi
题目描述
一种编程语言中的数组按如下方式定义:
- 数组的开头和结尾分别用大括号($\texttt \{$ 和 $\texttt \}$)表示。
- 每组大括号内有若干个(可能为 $0$)用逗号分隔开来的**元素**(每个数组的最后一个元素后面没有逗号)。
- 每个元素可以是一个**单词**(由小写字母组成的字符串)或一个数组。
- 一些合法的数组:$\texttt {\{\}}, \texttt{\{a,b,c\}}, \texttt{\{abc,znj,\{novi,niz\},pozz\}}$。
你需要采用下列码风使得程序更加美观:
- 遇到单词或大括号时另起一行。
- 逗号应直接放置于一个数组元素的后面。
- 每遇到一个 $\texttt{\{}$,增加 $2$ 个空格的缩进。
- 每遇到一个 $\texttt{\}}$,减少 $2$ 个空格的缩进。
现给定一个数组,输出上述码风下该数组的样式。
输入输出格式
输入格式
一个字符串 $S$,表示给定的数组。
输出格式
给定码风下的数组。
输入输出样例
输入样例 #1
{abc,ono,sto}
输出样例 #1
{
abc,
ono,
sto
}
输入样例 #2
{}
输出样例 #2
{
}
输入样例 #3
{znakovi}
输出样例 #3
{
znakovi
}
输入样例 #4
{a,b,{c,d},e,{}}
输出样例 #4
{
a,
b,
{
c,
d
},
e,
{
}
}
说明
**【数据规模与约定】**
- 对于 $50\%$ 的数据,元素只包含单词。
- 对于 $100\%$ 的数据,$1 \le |S| \le 1500$。
**【提示与说明】**
Checker 选自 [Testlib 库](https://github.com/MikeMirzayanov/testlib/blob/master/checkers/fcmp.cpp),见附件。
**题目译自 [COCI 2015-2016](https://hsin.hr/coci/archive/2015_2016/) [#7](https://hsin.hr/coci/archive/2015_2016/contest7_tasks.pdf) _Task 1 Nizovi_。**
**本题分值按 COCI 原题设置,满分 $50$。**