-->
当前位置:首页 > 题库

编程题:模拟

Luz4年前 (2022-09-05)题库276
米尔科收到了朋友斯拉夫科的留言。斯拉夫科是一位世界级的密码学家,他喜欢加密他发送给米尔科的信息。这一次,他决定使用一次性键盘加密。如果使用正确,OTP是无法穿透的,斯拉夫科知道这一点。然而,他不想让米尔科在一个不可能完成的任务上撞到自己的头,所以他在留言的同时发出了一些提示。

米尔科知道斯拉夫科斯的原始明文只包含英文字母表中的小字母('a'-'z'),句号'和空格“(ASCII 3210)”。此外,他知道斯拉夫科只用数字“0”到“9”作为他的钥匙。经过深思熟虑,他意识到他可以在明文中确定所有空格和句号的位置。他现在让你写一个程序,自动完成。

从他之前与斯拉夫科的交易中,米尔科知道OTP加密是如何工作的。让我们看一个简单的例子。假设您想使用“0120123”作为键对字符串“abc efg”进行编码。

![1654484549626.jpg](~/c2dddb37-4296-490e-9944-ad589d36946f.jpg)
首先,使用ASCII编码将密钥和明文转换为十六进制数。然后将它们对齐,并对每一对执行异或操作。生成的序列就是加密的消息。


### 输入格式:
输入的第一行包含一个整数N(1≤N≤1000),表示加密消息中的字符数。

下一行包含N个整数,用十六进制表示,大于或等于010,小于或等于12710,即加密消息

### 输出格式:
输出的第一行也是唯一一行应该包含N个字符,每个字符代表纯文本中的一个字符。如果明文的第i个字符是字母,那么输出的第i个字符应该是破折号“-”,如果不是,那么应该输出一个句号“.”。

### 输入样例1:
in
7
51 53 51 10 54 54 54


### 输出样例1:
out
---.---


### 输入样例2:
in
7
53 53 51 54 54 51 10


### 输出样例2:
out
------.







答案:若无答案欢迎评论