#CF1951E. 无回文

无回文

E. 无回文

每个测试用例时间限制:22 秒 每个测试用例内存限制:256256 兆字节

给定一个由小写拉丁字母组成的字符串 ss。你需要对字符串进行划分^\dagger,将其分割为若干子串,使得每个子串都不是回文^\ddagger


^\dagger 字符串 ss 的划分是一个长度为 kk 的有序字符串序列 t1,t2,,tkt_1,t_2,\dots,t_k,满足

t1+t2++tk=st_1+t_2+\dots+t_k = s

其中 ++ 表示字符串拼接操作。

^\ddagger 一个字符串若正读与反读完全相同,则称其为回文。例如 racecar\texttt{racecar}abcba\texttt{abcba}a\texttt{a} 均为回文;而 ab\texttt{ab}dokibird\texttt{dokibird}uniaji\texttt{uniaji} 不是回文。

输入格式

输入包含多组测试用例。 第一行输入一个整数 tt,满足 1t1041\le t\le 10^4,表示测试用例数量。

每组测试用例输入一个由小写拉丁字母组成的字符串 ss,满足 1s1061\le |s|\le 10^6

保证所有测试用例的字符串长度之和满足

s106\sum |s|\le 10^6

输出格式

对于每组测试用例:

  1. 若存在合法划分,输出 YES\texttt{YES};否则输出 NO\texttt{NO}
  2. 若答案为 YES\texttt{YES},第二行输出一个整数 kk,表示划分后的子串数量。
  3. 第三行输出 kk 个字符串 t1,t2,,tkt_1,t_2,\dots,t_k,任意一种合法划分均可。

样例输入

3
sinktheyacht
lllllllll
uwuowouwu

样例输出

YES
1
sinktheyacht
NO
YES
3
uw uow ouwu

说明

  1. 第一个测试用例中,字符串 sinktheyacht\texttt{sinktheyacht} 本身不是回文,因此仅划分为自身一个子串即为合法方案。
  2. 第二个测试用例中,该字符串的任意子串均为回文,不存在合法划分。
  3. 第三个测试用例中,另一组合法划分可以是 [u,wu,owo,uwu][\texttt{u},\texttt{wu},\texttt{owo},\texttt{uwu}]