#agc048a. [agc048_a]atcoder < S
[agc048_a]atcoder < S
問題文
英小文字からなる文字列 が与えられます. すぬけくんは, の隣り合う 文字をスワップするという操作を行うことができます. 例えば,agc
なら, 回の操作で, を gac
(a
と g
をスワップ) もしくは acg
(g
と c
をスワップ) に変換できます.
すぬけくんはこの操作を 回以上繰り返し, 辞書順で atcoder
となるようにしたいです.
辞書順で の定義
文字列 が辞書順で であるとは,以下のうちいずれかの条件を満たすことを意味します.
- ある整数 () が存在して, は先頭の 文字が一致しており,かつ, の 文字目は の 文字目よりアルファベット順で真に小さい.
- であり, の先頭の 文字は と等しい.
目標が達成可能かどうか判定し,可能な場合は必要な操作回数の最小値を求めてください.
つの入力ファイルにつき, 個のテストケースを解いてください.
制約
- は英小文字からなる文字列.
入力
入力は以下の形式で標準入力から与えられる. 入力の 行目は以下のとおりである.
そして, 個のテストケースが続く. これらはそれぞれ以下の形式で与えられる.
出力
各テストケースについて,目標が達成不可能な場合は ,可能な場合は必要な操作回数の最小値を出力せよ. 各テストケースごとに改行せよ.
入力例 1
3
atcodeer
codeforces
aaa
出力例 1
1
0
-1
- 番目のテストケース: 例えば,末尾の 文字をスワップすることで,
atcodere
atcoder
となります. - 番目のテストケース: 操作を行うまでもなく,
codeforces
atcoder
です. - 番目のテストケース: どのように操作を行っても
atcoder
にはなりません.