HX1256F. 基础计算器

提交2 通过2
通过率100%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

给你一个表达式 S 如 S=S= 2e+8-3e+5,表达式中每个字母表示一个变量。再给你这些变量的值,如 e 1 表示 e=1e=1。你被要求实现一个计算器,求出简化后的表达式和表达式的值。

表达式包括变量、运算数、运算符。变量用单个小写英文字母表示、运算数都是非负整数、运算符只包括加法减法和左右括号。

如果一个运算数紧跟在某个变量前面,表示它乘以后面的变量。例如 3a 表示 3×a3\times a。但是运算数不会出现在括号前面,也就是不会有 3(2+5) 这样的式子。

在这个计算器之前,已经有一个程序,将所有类似 +a、-a 的项改成 +1a、-1a,所以本题中的表达式不会省略绝对值为 1 的运算数。

表达式按通常顺序进行求值:先是括号,然后求加法和减法。例如 S=S= -3a-(6-2a),化简结果是 -1a-6(输出时也不省略绝对值为 1 的系数);如果给你变量的值 a -4,最终答案是 −2。

输入格式

第 1 行,1个非负整数 n,表示表达式中出现变量的个数。

第 2∼n+1 行,每行一个字符和一个整数,表示每个变量的值。

第 n+2 行,一个字符串 S,表示要求值的字符串。

输出格式

输出两行。

第一行输出表达式化简后的结果。按照变量字母的字典序从小到大输出每一项,常数项最后输出。

第二行输出代入变量的值之后、表达式的值。

2
k 2
e 1
4e+3k+8-3e+5-6k-13
1e-3k
-5

提示

0
15+20-10
25
25
0
100-50+25
75
75
1
a 2
5a-10
5a-10
0

数据范围

100% 数据:0≤n≤260\le n\le 26;−104≤-10^{4}\le变量的值≤104\le 10^{4};S 长度不超过 10510^{5},运算数不超过 10410^{4}。

100% 数据:0≤n≤260\le n\le 26;−104≤-10^{4}\le变量的值≤104\le 10^{4};S 长度不超过 10510^{5},运算数不超过 10410^{4}。