题库/G3025

#G3025. [GESP202606 三级] 加密

    传统题 难度: 进阶 标签>GESPGESP三级数组映射数字替换
时间限制1000 ms
内存限制512 MiB
通过率100%1 / 1 次提交
题目描述 查看题解 开始编程Alt+E

G3025 · [GESP202606 三级] 加密

退出在线编程模式
进阶 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制512 MiB
通过率100%1 / 1 次提交

小杨同学有一串数字,想把它们变成另一串数字,这个过程叫做加密。

他有一本密码本,密码本告诉你:每个数字应该变成哪个数字。

数字一共有 1010 个:00、11、22、33、44、55、66、77、88、99。

密码本会依次告诉你:

  • 00 要变成什么
  • 11 要变成什么
  • 22 要变成什么
  • ……
  • 99 要变成什么

请你按照密码本,把原来的每个数字都换成新的数字,然后输出。

输入格式

输入共有 33 行。

第一行:一个整数,表示有多少个数字需要加密;

第二行:这些需要加密的数字;

第三行:密码本,一共 1010 个数字。

这 1010 个数字的意思是:

  • 第 11 个数字:表示 00 加密后变成什么;
  • 第 22 个数字:表示 11 加密后变成什么;
  • 第 33 个数字:表示 22 加密后变成什么;
  • ……
  • 第 1010 个数字:表示 99 加密后变成什么。

输出格式

输出加密后的数字。

也就是:把输入第二行里的每个数字,都按照输入第三行的密码本换掉后输出。

7
0 2 0 3 4 1 9
9 0 1 2 3 4 5 6 7 8
9 1 9 2 3 0 8

说明与数据范围

第二行要加密的数字是:

0 2 0 3 4 1 90 \ 2 \ 0 \ 3 \ 4 \ 1 \ 9

第三行密码本是:

9 0 1 2 3 4 5 6 7 89 \ 0 \ 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8

它的意思是:

  • 00 变成 99
  • 11 变成 00
  • 22 变成 11
  • 33 变成 22
  • 44 变成 33
  • 55 变成 44
  • 66 变成 55
  • 77 变成 66
  • 88 变成 77
  • 99 变成 88

所以:

  • 00 变成 99
  • 22 变成 11
  • 00 变成 99
  • 33 变成 22
  • 44 变成 33
  • 11 变成 00
  • 99 变成 88

最后得到:

9 1 9 2 3 0 89 \ 1 \ 9 \ 2 \ 3 \ 0 \ 8

数据范围

需要加密的数字个数不超过 2000020000 个,且均为 00 到 99;密码本中的数字不重复,且均为 00 到 99。

来源与评测数据

GESP C++ 3级,2026年06月第1题。

本题含6个自行生成的测试点,非官方原版测试数据;每题总分100分。

题目信息

#693
100%

1 次通过 · 1 次提交

练习难度 进阶
时间限制
1000ms
内存限制
512MiB

题目标签

暂无标签
上传者