UVA11956 BrainFuck
题目背景
最近,你的朋友 Bob 买了一台可以用 BrainFuck 编程的新 LED 显示屏,但是直接在 LED 显示屏上运行程序非常耗时,因此 Bob 决定为显示屏的指令集编写一个解释器,以便先在自己的电脑上先调试好他的程序,确认无误后再将代码上传到显示屏运行。然而 Bob 只会一种编程语言——毫无疑问就是 BrainFuck,否则他也不会买这台 LED 显示屏了。所以,他来请你来帮他写这个解释器。
题目描述
[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=229&page=show_problem&problem=3107
[PDF](https://uva.onlinejudge.org/external/119/p11956.pdf)
显示屏程序是一系列按顺序执行的指令。显示屏处理器的指令集是 BrainFuck 语言指令的一个子集。处理器能够执行的指令包括:`>`、`` | 指针所指向的内存地址加 $1$。 |
| `` 操作,指针将指向最左边的字节,反之亦然。
每个内存所存储的数值,因此当存储的数值为 $255$ 时,再进行一次 `+` 操作将会得到 $0$,反之亦然。
输入格式
输入共 $N+1$ 行。
第一行输入一个整数 $N$,表示测试组数。
随后 $N$ 行,每行输入一个字符串 $s_i$($1\leq i\leq N$),表示显示屏处理器的指令。
输出格式
输出共 $N$ 行。
对于第 $T$ 组测试,先输出一串字符串 `Case T: `,然后以十六进制输出 $100$ 个整数 $A_1,A_2,A_3,\dots,A_{100}$,其中 $A$ 是 LED 显示屏的循环内存数组。每个 $A_i$($1\leq i \leq 100$)以一个空格分隔。
说明/提示
### 数据规模与约定
规定 $|x|$ 表示字符串 $x$ 的长度。
对于 $100\%$ 的数据,$1\leq N\leq 100$,$1\leq|s_i|\leq 10^5$($1\leq i\leq N$),$1\leq T\leq N$,$0\leq A_i \leq 255$($1\leq i\leq100$)。