#P7389. 「EZEC-6」游戏

「EZEC-6」游戏

题目描述

Alice 和 Bob 玩游戏。

Alice 初始有 nn 个石子,Bob 初始有 mm 个石子,他们进行若干轮游戏,第 ii 轮游戏的输者给赢者 ii 个石子,当某一轮输者的石子不足时,停止游戏。

给定 n,mn,m,求出游戏最多进行的轮数(不包含结束轮),并构造一个只包含 A 与 B 的胜负序列,满足该序列的长度为你的答案,并且任何时刻每个人手里的石子数非负。

输入格式

本题有多组数据。

第一行一个正整数 TT,表示数据组数。

对于每组数据:

一行 22 个非负整数 n,mn,m。

输出格式

对于每组数据:

第一行一个整数,表示游戏最多进行的轮数,记你的答案为 xx;

第二行一个长度为 xx 的字符串,表示胜负序列。

若第 ii 轮 Alice 赢,则你的胜负序列的第 ii 位为 A,若第 ii 轮 Bob 赢,则你的胜负序列的第 ii 位为 B。

3
1 1
0 3
1 3
2
BA
3
AAB
3
ABA

提示

本题采用捆绑测试。

  • Subtask 1(6 points):n+m≤15n+m\le15。
  • Subtask 2(8 points):n=mn=m。
  • Subtask 3(8 points):∑n+m≤103\sum n+m\le10^3。
  • Subtask 4(8 points):∑n+m≤2×104\sum n+m\le2\times10^4。
  • Subtask 5(25 points):∑n+m≤4×105\sum n+m\le4\times10^5。
  • Subtask 6(45 points):无特殊限制。

对于 100%100\% 的数据,1≤T≤1031\le T\le10^3,0≤n,m≤2×1070\le n,m\le2\times10^7,1≤n+m≤2×1071\le n+m\le2\times10^7,∑n+m≤2×107\sum n+m\le2\times10^7。

如果你答对了最多进行的轮数,而你构造的胜负序列不合法,你将得到该测试点 20%20\% 的分数(下取整)。

注意,若你无法构造胜负序列,也请输出一个长度不为零的字符串。

本题输出量较大,请使用较快的输出方法。