P7389 「EZEC-6」游戏

题目描述

Alice 和 Bob 玩游戏。 Alice 初始有 $n$ 个石子,Bob 初始有 $m$ 个石子,他们进行若干轮游戏,第 $i$ 轮游戏的输者给赢者 $i$ 个石子,当某一轮输者的石子不足时,停止游戏。 给定 $n,m$,求出游戏最多进行的轮数(不包含结束轮),并构造一个只包含 `A` 与 `B` 的胜负序列,满足该序列的长度为你的答案,并且任何时刻每个人手里的石子数非负。

输入格式

**本题有多组数据**。 第一行一个正整数 $T$,表示数据组数。 对于每组数据: 一行 $2$ 个非负整数 $n,m$。

输出格式

对于每组数据: 第一行一个整数,表示游戏最多进行的轮数,记你的答案为 $x$; 第二行一个长度为 $x$ 的字符串,表示胜负序列。 若第 $i$ 轮 Alice 赢,则你的胜负序列的第 $i$ 位为 `A`,若第 $i$ 轮 Bob 赢,则你的胜负序列的第 $i$ 位为 `B`。

说明/提示

**本题采用捆绑测试**。 - Subtask 1(6 points):$n+m\le15$。 - Subtask 2(8 points):$n=m$。 - Subtask 3(8 points):$\sum n+m\le10^3$。 - Subtask 4(8 points):$\sum n+m\le2\times10^4$。 - Subtask 5(25 points):$\sum n+m\le4\times10^5$。 - Subtask 6(45 points):无特殊限制。 对于 $100\%$ 的数据,$1\le T\le10^3$,$0\le n,m\le2\times10^7$,$1\le n+m\le2\times10^7$,$\sum n+m\le2\times10^7$。 如果你答对了最多进行的轮数,而你构造的胜负序列不合法,你将得到该测试点 $20\%$ 的分数(下取整)。 注意,若你无法构造胜负序列,也请输出一个长度不为零的字符串。 **本题输出量较大,请使用较快的输出方法。**