A
题目描述
定义了两种新的运算符:
1、cal
x cal y→(x+y)(x×y)
2、orz
x orz y→x2+y2
而且 特别规定,表达式中所有的运算符优先级都是一样的,要改变优先级只能通过小括号。
现在,给定某个表达式,求这个表达式的值。注意结果对 998244353 取模。
输入格式
第一行一个整数 n,表示接下来有 n 个表达式
接下来 n 行,每行一个表达式。
保证没有除法,保证输入的表达式是合法的,不会出现括号不匹配等状况,保证第一个字符不是 ′(′ 且没有相邻的 ′(′,表达式中没有多余的空格。
输出格式
输出 n 行,每行一个数,表示对应表达式的值。
样例 #1
样例输入 #1
3
3cal(7*6+9cal2orz7)
3orz4*(3*7+(6*5orz3)cal8)
3*7+6*(5+1*(6+7)+(7*7))
样例输出 #1
346465476
174468000
3429
提示
对于 30% 的数据,没有小括号
对于另外 10% 的数据,n=1
对于另外 10% 的数据,没有新定义的运算符
对于 100% 的数据,n≤20 且 ∣表达式∣≤1000