正当八万高兴的回到国内时,他震惊的发现月域已经天翻地覆:
在 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 串转换为对应表达式,为了保证表达式简洁,八万需要尽可能少的输出括号,但是需要保持原来的运算顺序。
注意:即使运算结果相同,运算顺序也有可能被破坏,比如 1∗2∗3 与 1∗(2∗3) 的运算次序不同,后者不应简化成前者。
当然,不太会编程的八万又来找你帮忙了。
本题有多组测试数据,文件第一行为测试数据组数 T(1≤T≤20)。
对于每一组测试数据,共一行一个 JSON 串 s(1≤∣s∣≤8×104),格式如上所述。
其中,∣s∣ 表示 s 的长度,另外,数据保证 JSON 串中的整数非负且小于 231。
对于每一组测试数据,输出一行一个括号尽可能少的表达式。
2
["-",5,["*",2,3]]
["*",5,["*",2,3]]
5-2*3
5*(2*3)