P8032 [COCI 2015/2016 #7] Nizovi

题目描述

一种编程语言中的数组按如下方式定义: - 数组的开头和结尾分别用大括号($\texttt \{$ 和 $\texttt \}$)表示。 - 每组大括号内有若干个(可能为 $0$)用逗号分隔开来的**元素**(每个数组的最后一个元素后面没有逗号)。 - 每个元素可以是一个**单词**(由小写字母组成的字符串)或一个数组。 - 一些合法的数组:$\texttt {\{\}}, \texttt{\{a,b,c\}}, \texttt{\{abc,znj,\{novi,niz\},pozz\}}$。 你需要采用下列码风使得程序更加美观: - 遇到单词或大括号时另起一行。 - 逗号应直接放置于一个数组元素的后面。 - 每遇到一个 $\texttt{\{}$,增加 $2$ 个空格的缩进。 - 每遇到一个 $\texttt{\}}$,减少 $2$ 个空格的缩进。 现给定一个数组,输出上述码风下该数组的样式。

输入格式

一个字符串 $S$,表示给定的数组。

输出格式

给定码风下的数组。

说明/提示

**【数据规模与约定】** - 对于 $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$。**