15226. 帕秋莉,go!

【题面描述】
帕秋莉是个精通魔法的魔女。她准备自创一个威力强大的魔法。
帕秋莉有很多魔力残片,她只要把这些残片按照某种顺序组装起来就可以了。(可以选择不用某些残片)
但不是随便组装出的魔法都是有效的。如果把每个残片看作一个字符的话,最后组装出的魔法(字符串)必须是回文字符串才行。
所谓回文字符串,即一个字符串无论正着读还是倒着读都是一样的结果。比如"yamatotamay"就是回文的,而"yamatomaya"则不是回文的。
已知魔法的威力和字符串长度有关,字符串长度越长,魔法的威力越大。若两个字符串长度相等,则字典序大的那个威力更大。
所谓字典序,指两个字符串从左到右的第一个不相等的字符比较的大小。例如"abzba"和"acaca"相比,后者的字典序更大,因为'b'<'c'(第一个不等的字符)。
帕秋莉共有n个魔力残片,每个残片均可看成一个小写字母。请帮她组装出一个威力最大的魔法。
【输入】
第一行输入一个正整数n(1≤n≤200000)
第二行输入一个长度为n的字符串,代表帕秋莉拥有的原始魔力碎片。
【输出】
第一行输出一个正整数,代表组装的魔法长度。
第二行输出一个字符串,代表组装的魔法。
【样例输入】
8
abbaczzd
【样例输出】
7
zbadabz

难度等级: 2
总通过次数: 21
总提交次数: 68
  • constructive algorithms,greedy,strings,implementation