#HX1256F. 基础计算器

提交0 通过0
通过率0%
时间限制1000ms
内存限制128MiB
    ID: 10087 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 普及 上传者: 标签>编程题C++CSPCSP复赛CSP复赛专项练习暑假CSP复赛集训暑假集训1256-OI赛制模拟考上下

题目描述

题目描述

给你一个表达式 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,表示要求值的字符串。

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

输出格式

输出两行。

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

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

样例输入

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

样例输出

1e-3k
-5

提示

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

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