已结束 GESP欢乐赛#69

A7267 | 皓仔的字符变换

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

皓仔最近在学习一种简单的“字符变换术”。

他准备了一串字符,并决定对其中的每个字符施加同样的魔法:让它在字符编码表中的位置整体向后移动 $x$ 个单位。

不过,这个魔法并不总是安全的——如果变换后的结果仍然是数字字符或英文字母,那么这个字符就算变换成功;否则,这次变换就会失败,记作 -1

现在,皓仔想请你帮他完成这项字符变换任务。

给定一个字符串 $s$ ,以及一个整数 $x$。

对于字符串的每个字符 $c$,进行如下操作:

1. 将字符 $c$ 的编码值加上 $x$,得到一个新字符;

2. 如果这个新字符属于以下三类之一:

- 数字字符 09
- 大写字母 AZ
- 小写字母 az

那么输出该新字符;

3. 否则输出 -1

你需要按顺序输出每个字符变换后的结果, 结果使用空格隔开。

输入格式

第一行输入一个字符串 $s$;

第二行输入一个整数 $x$, 代表字符变换进行移动的数量。

输出格式

输出一行,表示每个字符变换后的结果。

如果某个字符变换后仍是数字字符或英文字母,则输出该字符;否则输出 -1

相邻结果之间用一个空格分隔。

输入输出样例

输入 #1
A8z?b
1
输出 #1
B 9 -1 -1 c
C++ 编辑器
输入
输出