完美串
题号:NC288093
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}对于给定仅由小写字母构成的字符串 s,请你将其进行重新排列后得到 s',使其“完美长度”最大化。
\hspace{15pt}字符串 t 的“完美长度” m 的定义如下:记 t 的所有长度为 m子串构成子串数组 \{t_1', t_2', \dots, t_{n-m+1}'\}。如果对于每一个 t_i' 来说,它的非空子串都是两两不同的,那么 m 就是字符串 t 的其中一个“完美长度”。

\hspace{15pt}子串为从原字符串中,连续的选择一段字符(可以全选、可以不选)得到的新字符串。

输入描述:

\hspace{15pt}在一行上输入一个长度为 |s| \left(1 \leq |s| \leq 5 \times 10^5\right)、仅由小写字母构成的字符串 s

输出描述:

\hspace{15pt}第一行输出一个整数,表示字符串 s 的最大“完美长度”。
\hspace{15pt}第二行输出一个长度为 |s| 的字符串,代表重新排列得到的,能求出最大“完美长度”的字符串

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
        此外,请不要输出额外内容(如空格)!
示例1

输入

复制
atwh

输出

复制
4
what
示例2

输入

复制
union

输出

复制
4
niuon