CSES 2427 - Letter Pair Move Game
1.0s 512M一排有 \(2n\) 個盒子。其中有兩個相鄰的盒子是空的,其餘每個盒子裡都有一個字母 A 或 B。兩種字母各出現在恰好 \(n-1\) 個盒子裡。
你的任務是搬動這些字母,使得所有字母 A 都出現在任何字母 B 之前。每一回合,你可以選擇任意兩個相鄰且都有字母的盒子,並把這兩個字母移到那兩個相鄰的空盒子裡,同時保持它們原本的順序。
可以證明:要嘛存在一組不超過 \(10n\) 回合的解,要嘛無解。
輸入格式
第一行有一個整數 \(n\):盒子共有 \(2n\) 個。
第二行有一個長度為 \(2n\) 的字串,描述初始的狀態。每個字元是 A、B 或 .(代表空盒子)。
輸出格式
先輸出一個整數 \(k\):回合數。接著輸出 \(k\) 行描述這些操作。只要 \(k \le 1000\),你可以輸出任何一組解。
如果無解,只輸出 -1。
範例輸入 1
3
AB..BA
範例輸出 1
2
ABBA..
A..ABB
範例輸入 2
3
ABAB..
範例輸出 2
-1
限制
- \(1 \le n \le 100\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入