C. Mustache

传统 1000 ms 256 MiB
标准 IO
文本比较

题目描述

正当八万高兴的回到国内时,他震惊的发现月域已经天翻地覆:

在 Project D 顺利完成的庆祝仪式上,月域皇、帝 ST 被本不可能出现在月球上的一道闪电击中后消失。更糟糕的是,月域帝印在那时突然从 ST 身上飞出,正好被臭名昭著的 JJ 接住。根据月域协定,拥有帝印者即为月域之帝!(这一事件后来被历史学家们称为第一次凤落事变)

JJ 上任后并没有改变之前臭名昭著的形象,他一上任就因为一些个人原因签署了停战协议使得月域无法在 SA 地区继续反恐。

幸运的是,由于月域的三区结构,帝只能掌管帝区。但是,邪恶的 JJ 很快开始着手恢复在 Project D 中进行大更新后暂时退步的帝区直隶军省的军力。一旦恢复完成,直隶军省的战斗力将会大幅超越尚未利用 Project D 研究成果进行装备、战术更新的军区军省,而没有军队的政区更是独木难支...

为了阻止 JJ 的邪恶计划得逞,和其他无数自发组成的反 JJ 团体一样,八万和其他一些工省技术人员组织了起来。他们从入侵 JJ 的数字移动电话设备出发,获取 JJ 行动的关键信息。

根据一些技术人员调查,JJ 在休息时间非常喜欢玩一些微信小程序,这些技术人员便决定以小程序的漏洞为突破口入侵 JJ 的手机。

在这之前,为了挖掘小程序中的漏洞,他们需要先对微信小程序进行反编译。

微信发送给用户用于启动的包是一个后缀名为 .wxapkg 的文件,将这个文件解包后可以得到里面的文件。

解包后的文件中有一个名为 page-frames.html 的文件,里面包含的一部分 JavaScript 脚本是由原来的 WXML(WeiXin Markup Language) 编译而来。

在 WXML 中可以写一种名为 Mustache 的表达式,例如:{{1+(2-5)}}。而这些表达式被编译成一个 JavaScript 数组 z,用 JSON(JavaScript Object Notation) 的方法存储在 page-frames.html内。

提取用来表示表达式的程序已经由其他技术人员写好了,提取出来的表达式可形式化为如下内容:

我们称 "+"/"-"/"*"/"/" 为运算符,纯数字串表示一个整数。

一个表达式的 JSON 形式可以是一个整数,也可以是一个由两个逗号分隔,并由 [] 包围的“数组”,第一个逗号前的内容为运算符,后两个为表达式,这个表达式的结果为“数组”内的两个表达式做第一个逗号前的运算符对应的运算的结果。

即:

OPER ::= '"' ('+'|'-'|'*'|'/') '"'
NUMBER ::= [1-9][0-9]*
EXPR ::= NUMBER | '[' OPER ',' EXPR ',' EXPR ']'

八万的任务是将输入的 JSON 串转换为对应表达式,为了保证表达式简洁,八万需要尽可能少的输出括号,但是需要保持原来的运算顺序

注意:即使运算结果相同,运算顺序也有可能被破坏,比如 1231*2*31(23)1*(2*3) 的运算次序不同,后者不应简化成前者。

当然,不太会编程的八万又来找你帮忙了。

输入格式

本题有多组测试数据,文件第一行为测试数据组数 T(1T20)T(1\leq T\leq 20)

对于每一组测试数据,共一行一个 JSON 串 s(1s8×104)s(1\leq |s|\leq 8\times 10^4),格式如上所述。

其中,s|s| 表示 ss 的长度,另外,数据保证 JSON 串中的整数非负且小于 2312^{31}

输出格式

对于每一组测试数据,输出一行一个括号尽可能少的表达式。

样例

样例输入

2
["-",5,["*",2,3]]
["*",5,["*",2,3]]

样例输出

5-2*3
5*(2*3)