CF952G.Puzzling Language
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
现有一种由 Brainfuck(以下称为 BF)衍生出的二维编程语言。本题中,你需要编写一个可以生成该语言代码的简易生成器。
该语言的代码是字符 . 和 X 形成的矩阵,且可以按照下面的方式转换为 BF 程序:以正常顺序(从上到下、从左到右)阅读代码中的字符,每个 X 会被转换成 BF 指令,之后会运行这些指令。转换成的指令由这个 X 左边、上面和右边相邻的三个字符确定,见如下转换表:

给你一个字符串,请你输出一个以该语言编写的、能打印出这个字符串的程序。
你可以在这里下载该语言的解释器(用 C++11 编译),这个解释器也将用于评测你的程序。需要注意下面一些实现的细节:
- 解释器会先将该语言的代码转换成 BF 程序,然后会运行该 BF 程序并输出结果。
- 代码必须是矩形,所有行的长度必须相同。代码最多有 104 行和 104 列,最多有 5×105 个字符
X。 - 代码的第一行和最后一行上下相邻,第一列和最后一列左右相邻。
- 解释器有 3×104 个存储单元,每个可以存储 0 到 255 的整数,运算结果对 256 取模。若当前处于第一个存储单元,则指针左移(
<)指令会被忽略;若当前处于最后一个存储单元,则指针右移(>)指令会被忽略。 - 在 BF 程序中可以出现控制台输入(
,)指令,但运行时会将其忽略。
输入格式
输入一个字符串,其中每个字符的 ASCII 码都在 33(!)到 122(z)之间(含)。字符串的长度在 1 到 10 之间(含)。
输出格式
输出一个以该语言编写的程序,运行该程序时会打印出给定的字符串。
【样例 1 解释】
样例 1 输出的程序对应下面的 BF 程序:
-
>+<
>+++<
>+++++<
>+++++++<
>+++++++++<
>+++++++++++<
< >
.
.
.
三角形部分表示将第一个存储单元的值减一,并将第二个存储单元的值设为 36,也就是字符 $ 的 ASCII 码。接下来一行表示将指针移动到第二个存储单元。接下来三行表示将当前存储单元的值对应的字符($)打印三次。
输入输出样例
输入#1
$$$
输出#1
.......X....... ......XXX...... .....XXXXX..... ....XXXXXXX.... ...XXXXXXXXX... ..XXXXXXXXXXX.. .XXXXXXXXXXXXX. ............... X.............X X.............. X.............. X..............
输入解题思路,AI测评打分。不知道怎么写?