#CSES2427. 字母对移动游戏

字母对移动游戏

题目背景

翻译自 CSES-2427 题。

题目描述

2n2n 个盒子排成一行,其中有两个相邻的盒子是空的,其他所有盒子里都放着字母 "A" 或 "B"。字母 "A" 和 "B" 各自出现在恰好 n1n-1 个盒子中。

你的任务是移动字母,使得所有字母 "A" 出现在所有字母 "B" 之前。在每一回合,你可以选择任意两个相邻的盒子,它们都包含字母,并将字母移动到两个相邻的空盒子中,保持字母的顺序不变。

可以证明,要么存在一个解决方案,最多需要 10n10n 次移动,要么没有解决方案。

输入格式

第一行包含一个整数 nn,表示有 2n2n 个盒子。

第二行包含一个长度为 2n2n 的字符串,描述了初始位置。每个字符是 AB.(空盒子)。

输出格式

首先输出一个整数 kk,表示移动次数。接着输出 kk 行,每行描述一个移动操作。你可以输出任何一种解法,只要 k1000k \leq 1000

如果没有解,则输出 1-1

样例

3
AB..BA
2
ABBA..
A..ABB
3
ABAB..
-1

说明/提示

1n1001 \leq n \leq 100