#N0409. 冒泡!这次要构造成回文!【NOIP2023模拟赛T3】

冒泡!这次要构造成回文!【NOIP2023模拟赛T3】

题目描述

33DAI 拿到了一个只有小写字母的字符串 ss。

今天的 33DAI 非常喜欢回文字符串,他想把 ss 变成一个回文字符串。但 33DAI 非常菜,刚学过冒泡排序的他只会交换相邻的字符。

请问最少进行多少次相邻字母交换,才能使字符串变成回文字符串?如果 33DAI 怎么都做不到,请输出 -1。

输入格式

输入一个字符串 ss。

输出格式

输出一个整数,即最少的操作次数,或 -1。

eel
1
ataatmma
4
snuke
-1

大样例:sample3.zip

数据规模与约定

对于 100%100\% 的数据

  • 1 ≤ ∣s∣ ≤ 2 × 105 1\ \le\ |s|\ \le\ 2\ \times\ 10^5
  • s s 仅包含小写英文字母。

子任务:

  • 子任务 1(15 分):保证字符串中有 ∣s∣−1|s| - 1 个 o,和 11 个 x
  • 子任务 2(35 分):1 ≤ ∣s∣ ≤ 1000 1\ \le\ |s|\ \le\ 1000
  • 子任务 3(30 分):保证有解
  • 子任务 4(20 分):没有特殊限制