CF1312F Attack on Red Kingdom

题目描述

红色王国正遭受白王和黑王的进攻! 王国由 $n$ 座城堡守卫,第 $i$ 座城堡由 $a_i$ 名士兵防守。要征服红色王国,国王们必须消灭所有守军。 每天白王会进攻一座城堡。然后,夜晚黑王的军队会进攻一座城堡(可能是同一座)。接着白王再进攻一座城堡,然后黑王进攻,如此循环。第一次进攻由白王发起。 每次进攻必须选择一座至少有一名存活守军的城堡。共有三种进攻方式: - 混合进攻会使目标城堡的守军减少 $x$ 人(如果守军不足 $x$ 人,则直接变为 $0$); - 步兵进攻会使目标城堡的守军减少 $y$ 人(如果守军不足 $y$ 人,则直接变为 $0$); - 骑兵进攻会使目标城堡的守军减少 $z$ 人(如果守军不足 $z$ 人,则直接变为 $0$)。 混合进攻可以对任意有效目标(即任意至少有一名士兵的城堡)发动。然而,如果对某座城堡的上一次进攻是步兵进攻,则不能再次对其发动步兵进攻,无论上一次进攻是由谁发起的。骑兵进攻同理。未曾被进攻过的城堡可以被任意类型的进攻攻击。 最后一次进攻的国王将被誉为红色王国的征服者,因此两位国王都希望由自己发起最后一次进攻(他们都足够聪明,能够找到无论对方如何行动都能实现目标的策略,如果这样的策略存在)。白王将率先发起第一次进攻,而你负责为他制定计划。你能计算出有多少种第一次进攻的方案能让白王最终发起最后一次进攻吗?每种方案由目标城堡和进攻类型确定,如果目标城堡或进攻类型不同,则视为不同的方案。

输入格式

第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。 接下来是 $t$ 组测试数据。每组测试数据包含两行。 第一行包含四个整数 $n$、$x$、$y$ 和 $z$($1 \le n \le 3 \times 10^5$,$1 \le x, y, z \le 5$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^{18}$)。 保证所有测试用例中 $n$ 的总和不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,输出一个答案:白王第一次进攻有多少种可行方案能让他最终发起最后一次进攻(如果无论白王如何行动,黑王都能发起最后一次进攻,则输出 $0$)。

说明/提示

由 ChatGPT 4.1 翻译