[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$。**