QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 2048 MB Puntuación total: 100

#6568. 空间对齐

Estadísticas

你正在与几位程序员合作一个编程项目。令你感到震惊的是,你发现有些人使用制表符(tabs)来缩进代码,而另一些人则在同一个文件中使用空格(spaces)来缩进代码。显然,这些人这样做的时候并没有意识到有什么不妥。

你希望将制表符替换为空格,以便文件具有一致的缩进。一致的缩进意味着对于每一行处于嵌套深度 $k$ ($k \ge 0$) 的代码,该行第一个非空白字符之前应该恰好有 $k \cdot i$ 个空格,其中 $i > 0$。

是否可以通过将每个制表符替换为固定数量的空格来修复文件并实现一致的缩进?

输入格式

输入的第一行包含一个整数 $n$ ($2 \le n \le 100$),表示代码的行数。

接下来的 $n$ 行,每行包含一个字符串,由字符 ‘s’(代表一个空格)和/或 ‘t’(代表一个制表符)组成,后跟一个 ‘{’ 或 ‘}’。每行最多包含 1000 个字符。

保证第一行是单个 ‘{’,最后一行是单个 ‘}’,并且数据中的花括号保证匹配;也就是说,仅将这些字符视为一个字符串,总是可以通过重复删除子串 “{}” 直到最后为空字符串。

输出格式

输出一个整数,表示替换每个制表符所需的最少大于零的空格数,以实现一致的缩进;如果无法实现,则输出 -1。

样例

输入 1

10
{
ss{
sts{
tt}
t}
t{
ss}
}
{
}

输出 1

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.