CF1738A Glory Addicts

题目描述

英雄沉迷于荣耀,正在与怪物战斗。 英雄拥有 $n$ 个技能。第 $i$ 个技能的类型为 $a_i$(火或冰),初始伤害为 $b_i$。 英雄可以以任意顺序依次释放这 $n$ 个技能(每个技能恰好释放一次)。在释放每个技能时,英雄可以施展魔法,规则如下: - 如果当前技能紧接着一个不同类型的技能释放,则该技能的伤害会翻倍。 换句话说, 1. 如果一个类型为火、初始伤害为 $c$ 的技能紧跟在另一个火技能后释放,则造成 $c$ 点伤害; 2. 如果一个类型为火、初始伤害为 $c$ 的技能紧跟在冰技能后释放,则造成 $2c$ 点伤害; 3. 如果一个类型为冰、初始伤害为 $c$ 的技能紧跟在火技能后释放,则造成 $2c$ 点伤害; 4. 如果一个类型为冰、初始伤害为 $c$ 的技能紧跟在冰技能后释放,则造成 $c$ 点伤害。 你的任务是求出英雄能够造成的最大总伤害。

输入格式

每组测试包含多个测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^5$),表示测试用例的数量。接下来的每组测试用例描述如下: 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示技能数量。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \leq a_i \leq 1$),其中 $a_i$ 表示第 $i$ 个技能的类型。具体地,$a_i = 0$ 表示火技能,$a_i = 1$ 表示冰技能。 第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($1 \leq b_i \leq 10^9$),其中 $b_i$ 表示第 $i$ 个技能的初始伤害。 保证所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每个测试用例,输出英雄能够造成的最大总伤害。

说明/提示

在第一个测试用例中,可以将技能顺序排列为 $[3, 1, 4, 2]$,总伤害为 $100 + 2 \times 1 + 2 \times 1000 + 10 = 2112$。 在第二个测试用例中,可以将技能顺序排列为 $[1, 4, 2, 5, 3, 6]$,总伤害为 $3 + 2 \times 6 + 2 \times 4 + 2 \times 7 + 2 \times 5 + 2 \times 8 = 63$。 在第三个测试用例中,可以将技能顺序排列为 $[1, 2, 3]$,总伤害为 $1000000000 + 1000000000 + 1000000000 = 3000000000$。 在第四个测试用例中,只有一个初始伤害为 $1$ 的技能,总伤害为 $1$。 由 ChatGPT 4.1 翻译