#P16172. [ICPC 2015 NAIPC] Rainbow Zamboni

[ICPC 2015 NAIPC] Rainbow Zamboni

题目描述

吃豆人正在清理他的溜冰场!这个溜冰场,就像吃豆人宇宙中的一切一样,是环面状的!换句话说,如果你从矩形溜冰场的右边边缘出去,你会从左边边缘的同一条行进入。从左边边缘出去,你会从右边进入。从上边边缘出去,你会从底边的同一列进入。从底边边缘出去,你会从上边进入。

这台冰面修整机的特别之处在于,当它清理冰面时,会在冰面上留下颜色!开始时,冰面是无色的(白色)。每当修整机位于一个冰面单元格上时,它会覆盖该单元格的颜色。每种颜色用一个大写字母表示。颜色按字母顺序排列。修整机每走一步就会切换到字母表中的下一个字母,并在字母表末尾循环。如果当前颜色是 P,则下一个颜色是 Q。如果当前颜色是 Z,则下一个颜色是 A。

吃豆人使用以下非常具体的算法来清理冰面:

$$\begin{aligned} & \text{步长} \leftarrow 1 \\ & \text{循环 } \text{步数} \text{ 次} \\ & \quad \text{沿当前方向移动 } \text{步长} \text{ 步} \\ & \quad \text{将修整机的方向顺时针旋转 90 度} \\ & \quad \text{切换到下一个颜色} \\ & \quad \text{步长} \leftarrow \text{步长} + 1 \\ & \text{结束循环} \end{aligned}$$

修整机初始面朝上。已知修整机的起始位置、溜冰场的尺寸以及执行的步数,请确定修整机运行结束后冰面的状态。

输入格式

每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。每个输入由一行组成,包含 5 个空格分隔的整数 rrcciijjnn,其中:

  • rr1r20001 \leq r \leq 2\,000)是溜冰场的行数
  • cc1c20001 \leq c \leq 2\,000)是溜冰场的列数
  • ii1ir1 \leq i \leq r)是修整机的起始行
  • jj1jc1 \leq j \leq c)是修整机的起始列
  • nn1n10181 \leq n \leq 10^{18})是步数(吃豆人算法中的 步数\text{步数}

注意,第 11 行是顶行,第 11 列是左列。

输出格式

输出修整机运行结束后溜冰场的状态,为一个 r×cr \times c 的字符网格。每个字符应为一个大写字母(A-Z),表示冰面的颜色,或者是一个点(.)表示冰面为白色,或者是一个 '@' 符号,表示该单元格是修整机的最终位置。

5 5 3 3 4
.....
..BBC
..A.C
....C
@DDDD
5 5 3 3 7
EG...
E@BBC
EGA.C
EG..C
FGFFF

提示

翻译由 DeepSeek V3.2 完成