#CSES2427. 字母对移动游戏
字母对移动游戏
题目背景
翻译自 CSES-2427 题。
题目描述
有 个盒子排成一行,其中有两个相邻的盒子是空的,其他所有盒子里都放着字母 "A" 或 "B"。字母 "A" 和 "B" 各自出现在恰好 个盒子中。
你的任务是移动字母,使得所有字母 "A" 出现在所有字母 "B" 之前。在每一回合,你可以选择任意两个相邻的盒子,它们都包含字母,并将字母移动到两个相邻的空盒子中,保持字母的顺序不变。
可以证明,要么存在一个解决方案,最多需要 次移动,要么没有解决方案。
输入格式
第一行包含一个整数 ,表示有 个盒子。
第二行包含一个长度为 的字符串,描述了初始位置。每个字符是 A
、B
或 .
(空盒子)。
输出格式
首先输出一个整数 ,表示移动次数。接着输出 行,每行描述一个移动操作。你可以输出任何一种解法,只要 。
如果没有解,则输出 。
样例
3
AB..BA
2
ABBA..
A..ABB
3
ABAB..
-1
说明/提示
。