ASCII Expression
题意翻译
根据题目给的格式,计算其对应的表达式的值,并对 $2011$ 取模。
本题表达式的 BNF 范式如下:
```
<expr> ::= <term> | <expr> <'.'> <'+'|'-'> <'.'> <term>
<term> ::= <factor> | <term> <'.'> <'*'> <'.'> <factor>
<factor> ::= <powexpr> | <fraction> | <'-'> <'.'> <factor>
<digit>
<powexpr> ::= <primary> | <primary>
<primary> ::= <digit> | <'('> <'.'> <expr> <'.'> <')'>
<expr>
<fraction> ::= --------
<expr>
<digit> ::= '0' | '1' | ... | '9'
```
以下是表达式的具象化形式示例(具体内容可前往原pdf中查看)
![具体长相](https://cdn.luogu.com.cn/upload/image_hosting/z9tlmgr0.png)
## 分号的格式问题
比如说 $-\frac{4}{3}$ 分成 $3$ 行,一元运算符(负号)也需要一个空格进行分隔
```
3
- ---
4
```
再比如分式 $\frac{3+4\times -2}{-1-2^2}$ 写成 $4$ 行
```
3 + 4 * - 2
-------------
2
- 1 - 2
```
分子的宽度是 $11$ 分母的宽度是 $8$ 那么分母横线的长度取 $2+\max(11,8)= 13$
较短的一方(本式为分母部分)则直接拆成左边 $\lceil \frac{13-8}{2}\rceil$ 右边 $\lfloor \frac{13-8}{2}\rfloor$ 个空格
## 次幂表达式的问题
比如说 $(4^2)^3$ 只用 $2$ 行(很明显他和 $4^{2^3}$ 不是同一个东西)
```
2 3
( 4 )
```
说白了就是括号和中间的式子都要有空格,外面的指数和自己在横坐标上相邻即可
注意纵坐标与语法成分的问题,3对应的是 $(4^2)$ 的指数,所以和那个 $2$ 在同一行
## 输入&输出
多组输入数据,直到读到 $0$ 为止,每次读入一个表达式的行数 $n$ ,然后输入 $n$ 行表达式。
对于每组数据,保证行数不超过 $20$,列数不超过 $80$。
每一组输出其实际结果对 $2011$ 取模的值(很显然原始结果是个有理数),保证不会在分母中出现 $0$ 或者 $2011$ 的倍数。
### 输入样例
```
4
........4...2..........
(.1.-.----.)..*.-.5.+.6
........2..............
.......3...............
3
...3.
-.---
...4.
4
.3.+.4.*.-.2.
-------------
..........2..
...-.1.-.2...
2
...2..3
(.4..).
1
2.+.3.*.5.-.7.+.9
1
(.2.+.3.).*.(.5.-.7.).+.9
3
.2....3.
4..+.---
......5.
3
.2......-.-.3.
4..-.-.-------
..........5...
9
............1............
-------------------------
..............1..........
.1.+.-------------------.
................1........
......1.+.-------------..
..................1......
...........1.+.-------...
................1.+.2....
15
.................2......
................---.....
.......2.........5....3.
.(.---------.+.-----.)..
.....7...........3......
....---.+.1.............
.....4..................
------------------------
.......2................
......---...............
.......5.......2....2...
...(.-----.+.-----.)....
.......3.......3........
..............---.......
...............4........
2
.0....2....
3..+.4..*.5
20
............2............................2......................................
...........3............................3.......................................
..........----.........................----.....................................
............4............................4......................................
.....2.+.------.+.1...............2.+.------.+.1................................
............2............................2......................................
...........2............................2........................2..............
..........----.........................----.....................3...............
............2............................2.....................----.............
...........3............................3........................4..............
(.(.----------------.+.2.+.3.).*.----------------.+.2.).*.2.+.------.+.1.+.2.*.5
............2............................2.......................2..............
...........5............................5.......................2...............
..........----.........................----....................----.............
............6............................6.......................2..............
.........------.......................------....................3...............
............3............................3......................................
..........----.........................----.....................................
............2............................2......................................
...........7............................7.......................................
0
```
### 输出样例
```
501
502
1
74
19
2010
821
821
1646
148
81
1933
```
题目描述
[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4258
[PDF](https://uva.onlinejudge.org/external/15/p1512.pdf)