luogu#P8032. [COCI2015-2016#7] Nizovi

[COCI2015-2016#7] Nizovi

题目描述

一种编程语言中的数组按如下方式定义:

  • 数组的开头和结尾分别用大括号({\texttt \{}\texttt \})表示。
  • 每组大括号内有若干个(可能为 00)用逗号分隔开来的元素(每个数组的最后一个元素后面没有逗号)。
  • 每个元素可以是一个单词(由小写字母组成的字符串)或一个数组。
  • 一些合法的数组:$\texttt {\{\}}, \texttt{\{a,b,c\}}, \texttt{\{abc,znj,\{novi,niz\},pozz\}}$。

你需要采用下列码风使得程序更加美观:

  • 遇到单词或大括号时另起一行。
  • 逗号应直接放置于一个数组元素的后面。
  • 每遇到一个 {\texttt{\{},增加 22 个空格的缩进。
  • 每遇到一个 }\texttt{\}},减少 22 个空格的缩进。

现给定一个数组,输出上述码风下该数组的样式。

输入格式

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

输出格式

给定码风下的数组。

{abc,ono,sto}
{
  abc,
  ono,
  sto
}
{}
{
}
{znakovi}
{
  znakovi
}
{a,b,{c,d},e,{}}
{
  a,
  b,
  {
    c,
    d
  },
  e,
  {
  }
}

提示

【数据规模与约定】

  • 对于 50%50\% 的数据,元素只包含单词。
  • 对于 100%100\% 的数据,1S15001 \le |S| \le 1500

【提示与说明】

Checker 选自 Testlib 库,见附件。

题目译自 COCI 2015-2016 #7 Task 1 Nizovi

本题分值按 COCI 原题设置,满分 5050