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