CF999B.Reversing Encryption

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Reversing Encryption

题目描述

长度为 nn 的字符串 ss 可以通过以下算法加密:

  • 按照从大到小的顺序遍历 nn 的所有约数(即从 nn11);
  • 对于每个约数 dd,将子串 s[1d]s[1 \dots d](即从第 11 个字符到第 dd 个字符的子串)进行反转。

例如,将上述算法应用于字符串 ss = "codeforces" 时,变化过程如下:"codeforces" \to "secrofedoc" \to "orcesfedoc" \to "rocesfedoc" \to "rocesfedoc"(显然,最后一次反转操作不会改变字符串,因为 d=1d=1)。

现在给定加密后的字符串 tt,你的任务是解密该字符串,即找到一个字符串 ss,使得按照上述算法加密后得到字符串 tt。可以证明,这样的字符串 ss 总是存在且唯一。

输入格式

输入的第一行包含一个整数 nn1n1001 \le n \le 100),表示字符串 tt 的长度。
输入的第二行包含字符串 tt,长度为 nn,且仅由小写拉丁字母组成。

输出格式

输出一个字符串 ss,使得按照上述算法加密后得到 tt

说明/提示

第一个样例已在题目描述中给出。

由 ChatGPT 4.1 翻译

样例

10
rocesfedoc
codeforces
16
plmaetwoxesisiht
thisisexampletwo
1
z
z

在线编程 IDE

建议全屏模式获得最佳体验