QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 32 MB Total points: 100

#16687. 括号

Statistics

Mirko 在化学课上感到无聊,于是在手机上玩起了游戏。不幸的是,他被老师抓到了,并被布置了一份多得荒谬的家庭作业。

给定一个合法的数学表达式,其中包含若干对括号。Mirko 需要找出通过删除若干对匹配的括号(至少删除一对)所能得到的所有不同的表达式。如果两个表达式在任意位置上的字符不同,则认为它们是不同的。

例如,给定表达式 (2+(2*2)+2),我们可以得到 (2+2*2+2)2+(2*2)+22+2*2+2。而 (2+2*2)+22+(2*2+2) 是无法得到的,因为这需要拆散不匹配的括号。同一个表达式部分可以被多层括号嵌套。

输入格式

输入仅一行,包含一个合法的数学表达式。该表达式由非负整数、基本算术运算符(+-*/)以及括号(())组成。

给定的表达式长度不超过 $200$ 个字符,且包含至少 $1$ 对、至多 $10$ 对括号。

输出格式

按字典序升序输出所有可以通过删除至少一个合法括号对得到的所有不同的表达式。

样例

输入样例 1

(0/(0))

输出样例 1

(0/0)
0/(0)
0/0

输入样例 2

(2+(2*2)+2)

输出样例 2

(2+2*2+2)
2+(2*2)+2
2+2*2+2

输入样例 3

(1+(2*(3+4)))

输出样例 3

(1+(2*3+4))
(1+2*(3+4))
(1+2*3+4)
1+(2*(3+4))
1+(2*3+4)
1+2*(3+4)
1+2*3+4

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.