atcoder#ARC088C. [ARC088E] Papple Sort

[ARC088E] Papple Sort

题目描述

英小文字からなる文字列 S S が与えられます。 隣り合う 2 2 つの文字を入れ替える操作を繰り返して S S を回文にできるかどうか判定し、できる場合は操作の最小回数を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

S S

输出格式

回文にできない場合、-1 を出力せよ。そうでない場合、操作の最小回数を出力せよ。

题目大意

给定一个只有小写字母的字符串S,请问最少经过多少次相邻两字母的交换,使得字符串变成回文?

如果不可以输出 -1

说明

例子1说明,只要交换第二个和第三个字符,就成为回文了

例子2,从 原串 -> ataamtma -> atamatma -> atmaatma -> amtaatma就成为回文了

eel
1
ataatmma
4
snuke
-1

提示

制約

  • 1  S  2 × 105 1\ \leq\ |S|\ \leq\ 2\ ×\ 10^5
  • S S は英小文字からなる

Sample Explanation 1

以下の操作で、S S を回文にすることができます。 - 2 2 文字目と 3 3 文字目を入れ替える。新しい S S ele となる。

Sample Explanation 2

以下の操作で、S S を回文にすることができます。 - 5 5 文字目と 6 6 文字目を入れ替える。新しい S S ataamtma となる。 - 4 4 文字目と 5 5 文字目を入れ替える。新しい S S atamatma となる。 - 3 3 文字目と 4 4 文字目を入れ替える。新しい S S atmaatma となる。 - 2 2 文字目と 3 3 文字目を入れ替える。新しい S S amtaatma となる。

Sample Explanation 3

S S を回文にすることはできません。