问题描述 |
---|
c++早期版本的max函数仅支持两个参数,如果要求大于2个数字的最大值时,可以进行嵌套。比如求[1,2,3]的最大值时可以写成max(1,max(2,3))。 现在反卷局局长正在调查卷王,卓佬一急之下把自己代码的标点符号和括号全部删掉。 经过重重困难,局长只拿到了一行由n个字符串s构成的代码(代码不使用逗号表达式,封号只在末尾),s只可能是"max"或者是数字。 每个字符串之间用空格隔开,反卷局局长在不改变字符串顺序的前提下,在字符串的间隙(包括开头和末尾),增加若干个逗号、左(右)括号、分号,从而还原代码,如果成功还原代码(还原后的代码不报错),卓佬就会被逮捕。现在局长给你一串代码考考你,问你这串代码有没有可能被正确还原? |
输入描述 |
第一行是一个正整数 T 代表测试案例的数量。(1 <= T <= 100) 每组样例先是一个正整数n,代表字符串的个数(n<=1e3) 然后按顺序,依次输入n个字符串,每个字符串可能是数字或者"max",每个字符串之间用空格隔开,保证每个字符串的长度不超过10个字符。 |
输出描述 |
针对每组案例。 如果代码成功还原,输出还原后的代码。 代码如果不能还原,输出NO。 每组案例输出完都要换行。 |
样例输入复制样例 |
3 5 max 1 max 2 3 6 max 1 2 max 3 4 1 1 |
样例输出 |
max(1,max(2,3)); NO 1; |
提示说明 |
针对第一组样例: "max 1 max 2 3" 能成功还原代码。还原以后代码变为”max(1,max(2,3));“。因此卓老是卷王 针对第二组样例: "max 1 2 max 3 4" 不能成功还原代码,因此卓老不是卷王,输出NO。 |
相关 |