200882: [AtCoder]ARC088 E - Papple Sort

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

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.

Input

题意翻译

给定一个只有小写字母的字符串S,请问最少经过多少次相邻两字母的交换,使得字符串变成回文? 如果不可以输出 -1 说明 例子1说明,只要交换第二个和第三个字符,就成为回文了 例子2,从 原串 -> ataamtma -> atamatma -> atmaatma -> amtaatma就成为回文了

加入题单

算法标签: