QOJ.ac

QOJ

时间限制: 2 s 内存限制: 512 MB 总分: 10

#5212. 回文

统计

Bajtek 在参加了计算机科学兴趣小组后,了解了什么是回文。回文是指从左往右读和从右往左读都一样的单词。例如,“oko”、“kajak”、“kobyłamamałybok”和“ababbaba”都是回文,而“kajaki”、“zoo”、“alamakota”和“abaababa”则不是。

Bajtek 对新学到的知识感到非常兴奋,他迅速打开笔记本(不是纸质笔记本,而是电脑程序),在里面写下了一个由字母 'a' 和 'b' 组成的单词。然而,过了一会儿他意识到,他的单词不一定是回文。他决定修复这个问题!在每一秒钟内,他可以选择两个相邻的字母并交换它们的位置。他能否通过执行一系列这样的操作(或者什么都不做)使他的单词变成回文?如果可以,最少需要多少秒才能完成这些更改?请帮助他编写一个程序来计算这个结果。

输入格式

输入仅一行,包含一个非空单词,即 Bajtek 笔记本中的单词。该单词仅包含字符 'a' 和 'b',长度不超过 $200\,000$。

输出格式

输出一个整数,表示将 Bajtek 笔记本中的单词变为回文所需的最少秒数。如果无法做到,则输出 $-1$。

样例

输入 1

abbaaab

输出 1

2

输入 2

ab

输出 2

-1

说明

在第一个样例中,Bajtek 可以(例如)执行一系列交换:abbaaabbabaaabbaabaab,从而成功地将单词变为回文,这需要两秒钟。可以证明,无法在更短的时间内将该单词变为回文。

在第二个样例中,Bajtek 的单词可能是 abba。这两个单词都不是回文,因此他无法完成任务。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.