CF301C Yaroslav and Algorithm

题目描述

Yaroslav 喜欢算法。我们将描述他最喜欢的一个算法。 1. 该算法接收一个字符串作为输入。我们用 $a$ 表示这个输入字符串。 2. 算法由若干条命令组成。第 $i$ 条命令的形式为 $s_i$>>$w_i$ 或 $s_i$$w_i$,其中 $s_i$ 和 $w_i$ 是长度不超过 $7$ 的字符串,只包含数字和字符“?”,可以为空。 3. 每次迭代时,算法会查找编号最小的 $i$,使得 $s_i$ 作为子串出现在 $a$ 中。如果找不到这样的命令,则算法终止。 4. 设找到的命令编号为 $k$。则用 $w_k$ 替换 $a$ 中首次出现的 $s_k$。如果该命令形式是 $s_k$>>$w_k$,则算法继续执行下一轮迭代。否则,算法终止。 5. 算法终止后的 $a$ 即为输出。 Yaroslav 有一个包含 $n$ 个正整数的集合,他需要设计自己喜欢的算法,使得集合中的每个数都加 $1$。更准确地说,将每个数字视为其十进制字符串表示后,分别对每个字符串运行该算法,应输出对应数字加一后的结果字符串。 帮助 Yaroslav 解决这个问题。

输入格式

第一行包含整数 $n$ $(1 \leq n \leq 100)$,表示集合中的元素个数。接下来的 $n$ 行,每行一个正整数。所有给定的数都小于 $10^{25}$。

输出格式

输出一个可以分别对每个数加一的算法。第 $i$ 行输出第 $i$ 条命令,中间不带空格。 你的算法会被用来分别处理这些数字。只有满足以下条件,答案才被视为正确: - 每行都是一条合法的算法命令(见题目描述)。 - 命令条数不超过 $50$。 - 算法能使每个给定数加一。 - 对每个数,算法执行的轮数不超过 $200$。

说明/提示

由 ChatGPT 5 翻译