E - Papple Sort

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 800

問題文

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

制約

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

入力

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

S

出力

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


入力例 1

eel

出力例 1

1

以下の操作で、S を回文にすることができます。

  • 2 文字目と 3 文字目を入れ替える。新しい Sele となる。

入力例 2

ataatmma

出力例 2

4

以下の操作で、S を回文にすることができます。

  • 5 文字目と 6 文字目を入れ替える。新しい Sataamtma となる。
  • 4 文字目と 5 文字目を入れ替える。新しい Satamatma となる。
  • 3 文字目と 4 文字目を入れ替える。新しい Satmaatma となる。
  • 2 文字目と 3 文字目を入れ替える。新しい Samtaatma となる。

入力例 3

snuke

出力例 3

-1

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

Score : 800 points

Problem Statement

You are given a string S consisting of lowercase English letters. Determine whether we can turn S into a palindrome by repeating the operation of swapping two adjacent characters. If it is possible, find the minimum required number of operations.

Constraints

  • 1 \leq |S| \leq 2 × 10^5
  • S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S

Output

If we cannot turn S into a palindrome, print -1. Otherwise, print the minimum required number of operations.


Sample Input 1

eel

Sample Output 1

1

We can turn S into a palindrome by the following operation:

  • Swap the 2-nd and 3-rd characters. S is now ele.

Sample Input 2

ataatmma

Sample Output 2

4

We can turn S into a palindrome by the following operation:

  • Swap the 5-th and 6-th characters. S is now ataamtma.
  • Swap the 4-th and 5-th characters. S is now atamatma.
  • Swap the 3-rd and 4-th characters. S is now atmaatma.
  • Swap the 2-nd and 3-rd characters. S is now amtaatma.

Sample Input 3

snuke

Sample Output 3

-1

We cannot turn S into a palindrome.