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\%$ 的分数(下取整)。
注意,若你无法构造胜负序列,也请输出一个长度不为零的字符串。
**本题输出量较大,请使用较快的输出方法。**