#jdial. 2026暑假CSP-J模拟赛05-T1 程老师的旋转密码盘

2026暑假CSP-J模拟赛05-T1 程老师的旋转密码盘

【文件读写】本题使用文件读写:输入文件 dial.in,输出文件 dial.out

时间限制:1000ms 内存限制:512MB

题目描述

程老师有一个古老的密码盘,盘面上刻着一行由各种字符组成的密文。这个密码盘的神奇之处在于,它可以进行一种特殊的"滚动"操作。

每次滚动时,密码盘上的字符会按照以下规则变化:

  • 如果字符是小写英文字母az),它会变成字母表中的下一个字母。具体来说,a 变成 bb 变成 c,……,y 变成 z,而 z回绕到字母表的开头,变成 a
  • 如果字符是大写英文字母AZ)、数字09)或其他可打印符号(如 !@# 等),这些字符在滚动时保持不变

换句话说,只有小写字母会在每次滚动时向前推进一位,并且 z 之后会回到 a,形成一个循环;其余所有字符无论滚动多少次都纹丝不动。

程老师手上的密码盘当前显示的字符串为 ss。他想知道,如果把这个密码盘连续滚动 kk 次,最终盘面上显示的字符串会是什么。

由于 kk 可能非常大,程老师希望你能高效地帮他计算出结果。

输入格式

从文件 dial.in 中读入数据。

第一行一个字符串 ss,表示密码盘当前显示的密文。

第二行一个非负整数 kk,表示滚动的次数。

输出格式

输出到文件 dial.out 中。

一行一个字符串,表示滚动 kk 次后密码盘上显示的内容。

数据范围

对于所有测试点,保证:

  • 1s1051 \le |s| \le 10^5,其中 s|s| 表示字符串 ss 的长度。
  • 0k10180 \le k \le 10^{18}
  • 字符串 ss 中只包含 ASCII 码在 [33,126][33, 126] 范围内的可打印字符(不含空格)。

各测试点的详细限制如下:

测试点 kk \le 特殊性质
1 10
2~6 100
7~12 10310^3
13~14 A
15~16 10910^9 B
17~20 101810^{18}

特殊性质 A:字符串只包含小写英文字母。

特殊性质 B:字符串中不包含任何小写英文字母。

样例

样例 1 输入

abcXYZ9z
1

样例 1 输出

bcdXYZ9a

样例 2 输入

hello
2

样例 2 输出

jgnnq

样例 3 输入

z
1

样例 3 输出

a

样例解释

对于样例 1,滚动一次后:小写字母 a 变成 bb 变成 cc 变成 dz 回绕变成 a;大写字母 XYZ 和数字 9 保持不变。最终得到 bcdXYZ9a

难度 普及-
通过率 40%
尝试 5
已通过 2
ID
699
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-J模拟赛 第5场