#ATagc048a. [AGC048A] atcoder < S
[AGC048A] atcoder < S
题目描述
给定一个由小写英文字母组成的字符串 。すぬけ君可以进行如下操作:交换 中相邻的两个字符。例如,若 agc,则一次操作可以将 变为 gac(交换 a 和 g),或变为 acg(交换 g 和 c)。
すぬけ君可以重复进行该操作 次或多次,目标是使得 在字典序上满足 atcoder 。
字典序 的定义如下:对于字符串 ,若满足以下任一条件,则称 在字典序上小于 :
- 存在某个整数 (),使得 和 的前 个字符相同,且 的第 个字符在字母表中严格小于 的第 个字符。
- ,且 的前 个字符与 完全相同。
请判断目标是否可以达成。如果可以,输出所需操作次数的最小值;如果无法达成,输出 。
对于每个输入文件,需要解答 个测试用例。
输入格式
输入从标准输入读入,格式如下:
接下来有 个测试用例。每个测试用例格式如下:
输出格式
对于每个测试用例,如果目标无法达成,输出 ;如果可以达成,输出所需操作次数的最小值。每个测试用例输出一行。
样例 1
输入
3
atcodeer
codeforces
aaa
输出
1
0
-1
说明/提示
限制条件
- 由小写英文字母组成。
样例解释 1
- 第 个测试用例:例如,将末尾的 个字符交换后,
atcodereatcoder。 - 第 个测试用例:无需任何操作,
codeforcesatcoder。 - 第 个测试用例:无论如何操作,都无法使
atcoder。
由 ChatGPT 4.1 翻译