CF123A Prime Permutation
题目描述
给定一个由小写拉丁字母组成的字符串 $s$,记字符串的长度为 $|s|$。字符串中的字符从 $1$ 开始编号。
你的任务是判断是否可以重新排列字符串 $s$ 中的字符,使得对于任意质数 $p \leq |s|$,以及任意整数 $i$ 满足 $1 \leq i \leq |s|/p$,都有 $s_p = s_{p \times i}$。如果可以,请给出一种可行的排列方式。
输入格式
输入仅一行,包含初始字符串 $s$,由小写拉丁字母组成($1 \leq |s| \leq 1000$)。
输出格式
如果存在一种排列方式满足上述条件,第一行输出 "YES"(不带引号),第二行输出任意一种满足条件的排列字符串。如果不存在这样的排列方式,输出一行 "NO"(不带引号)。
说明/提示
在第一个样例中,任意六种字符串排列都是可行的:"abc"、"acb"、"bac"、"bca"、"cab" 或 "cba"。
在第二个样例中,没有任何字母排列能满足 $p=2$ 时的条件($s_2 = s_4$)。
在第三个测试中,任意一个字符 "y" 不出现在位置 2、3、4、6 的字符串都是合法的。
由 ChatGPT 4.1 翻译