1017. 划分

时间限制 1000 ms
内存限制 128 MB

题目描述

  Maple博士发明了一个对表达式进行操作的函数op(i,e)。其描述如下:
  e是要操作的表达式。函数要将表达式分成若干个优先级最低的子表达式。例如:ab+bc+cd经操作后变成了三个式子ab,bc,cd,因为‘+’的优先级是最低的。函数先要把表达式做如上分离,再按次序取其中的第i个式子。例 如:op(2,ab+bc+cd)=bc.
  很显然,这个函数有时是层层调用的,如:
  p:=a^bc+(dc)^fz+b
  op(1,op(1,op(2,p)))=(d
c)
  op(1,op(1,op(1,op(2,p))))=d*c
  op(2,op(2,p))=z
  op(3,p)=b
  op(1,op(3,p))=b
  Maple博士很懒,他把这任务交给了你,让你编出一个程序。
  注:在本题中认为(a+b)(b+c)为合法表达式,若p:=(a+b)(b+c)则op(1,p)=a+b;而p:=(a+b)+(b+c)则op(1,p)=(a+b)

输入数据

  数据分为两部分,第一部分是表达式(不需判错)。先是一个变量的名称,再是一个":="符号,再是表达式。
  表达式由小写字母和"+", "(", ")", "*", "^"组成。括号优先级最高,接下来就是"^",再下来是"*",再是"+"。
  下面就是要你算的几个 $op$ 函数。先是函数个数 $n$ 。
  下面 $n$ 行是 $op$ 的形式描述,由整数组成。
  例如 $:2 1 1$ 表示 $op\ (1,op\ (1,op\ (2,e)))$ 。怎样计算呢?先算 $op\ (2,e),$ 再将结果带入下一步,算 $op\ (1,op\ (1,op\ (2,e)),$ 再用同一方法算 $op\ (1,op\ (1,op\ (2,e)))$ 。

输出数据

  看样例。。。

样例输入

p:=a^b*c+(d*c)^f*z+b
4
2 1 1
2 2
3
3 1

样例输出

Expression p:
op(1,op(1,op(2,p)))=(d*c)
op(2,op(2,p))=z
op(3,p)=b
op(1,op(3,p))=b

样例说明

题目信息

未提交
未通过无法查看
未通过无法查看