P16079 [ICPC 2023 NAC] Space Alignment
题目描述
你正在与其他几位程序员合作一个编码项目。令你惊恐的是,你发现有些人在同一个文件中使用制表符缩进代码,而另一些人则使用空格缩进代码。显然,这些人这样做时并没有注意到任何问题。
你希望将制表符替换为空格,使得文件的缩进风格一致。一致的缩进意味着:对于嵌套深度为 $ k $($ k \ge 0 $)的每一行,该行第一个非空白字符之前应当恰好有 $ k \cdot i $ 个空格,其中 $ i > 0 $。
请问是否存在一个固定的空格数来替换每个制表符,从而修复文件并实现一致的缩进?
输入格式
输入的第一行包含一个整数 $ n $($ 2 \le n \le 100 $),表示代码的行数。
接下来的 $ n $ 行,每行包含一个字符串,该字符串由一系列字符 ‘s’(表示空格)和/或 ‘t’(表示制表符)组成,后跟一个单独的 ‘{’ 或 ‘}’。每行最多有 $ 1{,}000 $ 个字符。
第一行保证是单独的 ‘{’,最后一行保证是单独的 ‘}’,并且整个数据中的花括号保证是匹配的;也就是说,仅将这些字符视为一个字符串,总可以通过反复删除子串 “{}” 最终得到空串。
输出格式
输出一个整数,表示用固定数量的空格替换每个制表符后能实现一致缩进的最小空格数(大于零)。如果不可能实现,则输出 $ -1 $。
说明/提示
翻译由 DeepSeek V3.2 完成