CF883H Palindromic Cut
题目描述
Kolya有一个长度为 $n$ 的字符串 $s$ ,其中含有大小写英文字母和数字。
他想要重新编排 $s$ 中字符的顺序并将它切割为最少个子串,使得每个子串都为回文串且所有子串长度相等。回文串指的是从前往后读和从后往前读相同 的字符串,例如`madam`或`racecar`。
你的任务是帮助Kolya计算出所需切割出 $s$ 子串总数的最小值。
输入格式
第一行包括一个整数 $n(1 \leq n \leq 4⋅10^5)$。
第二行为长度为 $n$ 的字符串 $s$。
输出格式
第一行输出一个整数 $k$ ,表示需要切割出的最少子串数。
第二行输出切割后的 $k$ 个字符串,每两个之间用一个空格隔开。你可以以任意顺序输出这些等长的字符串。
由 @Segment_Tree 提供翻译,Reformed by @devdede。