#P17467. [ICPC 2018 Jiaozuo R] Ultraman vs. Aodzilla and Bodzilla

[ICPC 2018 Jiaozuo R] Ultraman vs. Aodzilla and Bodzilla

题目描述

六个月前,我们的英雄(曾用名 Huriyyah)击败了这片土地上的所有怪物。如今他更名为 Ultraman,离开了心爱的故土,准备迎接一项新的挑战。

在一片遥远的土地上,当地居民正遭受着两只强大而可怕的怪物——Aodzilla 与 Bodzilla——的侵扰。它们吞食独自外出的孩童,甚至残杀无辜之人。数十年来,人们始终笼罩在被袭击的恐惧之中。

为了拯救这些不幸的百姓,Ultraman 动身前往作为 Aodzilla 与 Bodzilla 主要巢穴的森林。在森林中,他直面这两只凶猛残暴的怪物,并与之搏斗。Aodzilla 和 Bodzilla 的生命值分别为 HPAHP_A 与 HPBHP_B,它们的攻击力分别为 ATKAATK_A 与 ATKBATK_B。

他们在洞穴中进行回合制战斗。每一秒内,Ultraman 会先受到怪物的攻击,所受伤害为此时所有存活怪物的攻击力之和。随后他必须选择恰好一只仍然存活的怪物并攻击它。被选中的怪物将受到数值为 ii 的伤害(即其生命值减少 ii),其中 ii 表示 Ultraman 自开始到当前时刻已经向这两只怪物发动的攻击总次数(且当前攻击为第 ii 次)。换言之,在第 11 秒,两只怪物中的一只将受到伤害值为 11 的攻击;在第 22 秒,其中的一只(若仍存活)将受到伤害值为 22 的攻击;在第 33 秒,其中的一只(若仍存活)将受到伤害值为 33 的攻击,以此类推。若在某一时刻,某只怪物的生命值小于或等于零,该怪物将立即死亡。当两只怪物均被击杀时,Ultraman 获胜。

现在,你需要制定一个策略,使得 Ultraman 在获胜前所承受的总伤害最小。策略可以描述为一个字符串,其长度等于战斗持续的总时间。字符串的第 ii 个字符为 'A' 表示 Ultraman 在第 ii 秒选择攻击 Aodzilla;否则第 ii 个字符为 'B',表示该秒的攻击目标是 Bodzilla。你还需要在所有可能的最优策略中,找出字符串描述的字典序最小的那个策略。

对于两个不同的字符串 ss 与 tt,若其中一个字符串是另一个的前缀,则较短者在字典序上更小。在其他情况下,ss 在字典序上小于 tt 当且仅当 ss 的第一个字符小于 tt 的第一个字符,或它们相同时 ss 的第二个字符小于 tt 的第二个字符,以此类推。tt 在字典序上小于 ss 的情形可类似定义。

输入格式

输入包含多组测试数据,第一行包含一个正整数 TT,表示测试数据的组数,最多可达 10510^5。

对于每组测试数据,仅有一行包含四个整数 HPAHP_A、HPBHP_B、ATKAATK_A 和 ATKBATK_B,满足 1≤HPA,HPB,ATKA,ATKB≤1091 \leq HP_A, HP_B, ATK_A, ATK_B \leq 10^9。

我们保证至多只有 100100 组测试数据满足 max⁡{HPA,HPB}>103\max \lbrace HP_A, HP_B \rbrace > 10^3。

输出格式

对于每组测试数据,输出一行,包含一个整数表示 Ultraman 需要承受的最小总伤害,以及一个描述最优策略的字符串,且该字符串在所有可能的最优策略中字典序最小。你应在数字与字符串之间恰好输出一个空格。

2
5 15 5 25
5 15 25 5
155 BBBBBA
105 AAABBB

提示

翻译由 DeepSeek V4 Pro 完成