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)

输入输出格式

输入格式


输出格式


输入输出样例

暂无测试点