CF999B.Reversing Encryption
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A string s of length n can be encrypted by the following algorithm:
- iterate over all divisors of n in decreasing order (i.e. from n to 1),
- for each divisor d, reverse the substring s[1…d] (i.e. the substring which starts at position 1 and ends at position d).
For example, the above algorithm applied to the string s="codeforces" leads to the following changes: "codeforces" → "secrofedoc" → "orcesfedoc" → "rocesfedoc" → "rocesfedoc" (obviously, the last reverse operation doesn't change the string because d=1).
You are given the encrypted string t. Your task is to decrypt this string, i.e., to find a string s such that the above algorithm results in string t. It can be proven that this string s always exists and is unique.
长度为 n 的字符串 s 可通过以下算法进行加密:
- 按递减顺序遍历 n 的所有正因数(即从 n 到 1);
- 对每个因数 d,将子串 s[1…d](即从位置 1 开始、到位置 d 结束的子串)反转。
例如,对字符串 s= "codeforces" 应用上述算法,得到如下变化过程:
"codeforces" → "secrofedoc" → "orcesfedoc" → "rocesfedoc" → "rocesfedoc"(显然,最后一次反转操作(d=1)不会改变字符串)。
现给你加密后的字符串 t。你的任务是解密该字符串,即找出原始字符串 s,使得上述加密算法作用于 s 后恰好得到 t。可以证明,这样的字符串 s 总是存在且唯一。
输入格式
The first line of input consists of a single integer n (1≤n≤100) — the length of the string t. The second line of input consists of the string t. The length of t is n, and it consists only of lowercase Latin letters.
输入的第一行包含一个整数 n(1≤n≤100)—— 字符串 t 的长度。
输入的第二行包含字符串 t。t 的长度为 n,且仅由小写拉丁字母组成。
输出格式
Print a string s such that the above algorithm results in t.
打印一个字符串 s,使得上述算法得到 t。
输入输出样例
输入#1
10 rocesfedoc
输出#1
codeforces
输入#2
16 plmaetwoxesisiht
输出#2
thisisexampletwo
输入#3
1 z
输出#3
z
说明/提示
The first example is described in the problem statement.
第一个示例在题目描述中已给出。
输入解题思路,AI测评打分。不知道怎么写?