P2027 BrainFuck
题目背景
bf 是一种编程语言,全称为 BrainFuck,因为题目名称不能太露骨,所以就简写成 bf 了。
题目描述
这种语言的运行机制十分简单,只有一个大小为 $30000$ 的有符号 $8$ 位整数(范围 $[-128,127]$)的内存槽,和一个指向内存槽中位置的指针,在最初的时候指向内存槽的第一个整数。
这种语言的字符集也是十分的简单,只有`+ - , . > < []`。
|字符|意义|
|:-|:-|
|`` |指针所指向的内存地址加一。|
|`+` |指针所指向的内存里面的数值加一。|
|`-` |指针所指向的内存里面的数值减一。|
|`.` |输出当前指针所指向的内存里面的数值(以字符形式输出)。|
|`,` |将读入缓冲区中的一个字节送入当前指针指向的内存里面。如果读入缓冲区为空则送入 $-1$。|
|`[` |当前指针指向的内存里面的数值不为 $0$ 时,重复执行与之相匹配的 `]` 之间的语句,直到回到 `[` 时当前指针指向的内存中的数值为 $0$。|
|`]` |如上。|
输入格式
输入数据若干行,代码有注释。直到一个 `$` 为代码截止。
`$` 后面紧跟一个空格(不属于输入缓冲区),空格后面是输入缓冲区里面的内容,以一个空格和一个 `$` 截止。
输出格式
输出这段代码的执行结果。
说明/提示
对于 $10\%$ 的数据,没有循环。
对于另外 $10\%$ 的数据,循环没有嵌套。
对于 $100\%$ 的数据,输入的程序不会访问越界,输入的程序能够在 $10^6$ 步内运行结束,输入的字符串的长度不大于 $30000$。
字符在内存中的数值为字符所对应的 ASCII 码。