P16172 [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 个空格分隔的整数 $r$、$c$、$i$、$j$、$n$,其中:
- $r$($1 \leq r \leq 2\,000$)是溜冰场的行数
- $c$($1 \leq c \leq 2\,000$)是溜冰场的列数
- $i$($1 \leq i \leq r$)是修整机的起始行
- $j$($1 \leq j \leq c$)是修整机的起始列
- $n$($1 \leq n \leq 10^{18}$)是步数(吃豆人算法中的 $\text{步数}$)
注意,第 $1$ 行是顶行,第 $1$ 列是左列。
输出格式
输出修整机运行结束后溜冰场的状态,为一个 $r \times c$ 的字符网格。每个字符应为一个大写字母(A-Z),表示冰面的颜色,或者是一个点(.)表示冰面为白色,或者是一个 '@' 符号,表示该单元格是修整机的最终位置。
说明/提示
翻译由 DeepSeek V3.2 完成