407736: GYM102888 K 抽鬼牌,打伤害
Description
Alice 和 Bob 最近很无聊,想玩抽鬼牌的游戏。为了有趣一些,他们二人对游戏进行了修改。
现有两组牌。牌组 A 共 n 张牌,第 i 张牌的点数为 ai。牌组 B 共 m 张牌,第 j 张牌的点数为 bj。
开局时,Alice 会从牌组 A 中取出连续编号的一叠牌,记点数为 alA, alA + 1, ..., arA;Bob 会从牌组 B 中取出连续编号的一叠牌,记点数为 blB, blB + 1, ..., brB。
各自准备好后,Alice 将手中点数相同的牌一对一对地打出,Bob 也将手中点数相同的牌一对一对地打出,直到两人各自手中再也没有成对的、点数相同的牌。
比如,Alice 手中有点数为 3, 9, 3, 9, 3 这 5 张牌,一对一对地打出点数相等的牌后,手中剩下一张点数为 3 的牌;Bob 手中有点数为 8, 8, 8, 8 这 4 张牌,一对一对地打出点数相等的牌后,手中没有剩下的牌。
接下来 Alice 和 Bob 会展示出剩余的牌,并进行如下的伤害计算:
- 对于当前 Alice 手中有、Bob 手中没有的牌 ck,牌的点数的乘积 记为 Alice 对 Bob 造成的伤害 dA;没有这样的牌时,dA = 1。
- 对于当前 Bob 手中有、Alice 手中没有的牌 c'k,牌的点数的乘积 记为 Bob 对 Alice 造成的伤害 dB;没有这样的牌时,dB = 1。
请你计算一下 dA 在所有不同的开局情况下的和,以及 dB 在所有不同的开局情况下的和。由于两个和都很大,给出模 232 下的值即可。
两个开局情况被认为是不同,当且仅当开局时 Alice 从牌组 A 中取出的牌不同,或 Bob 从牌组 B 中取出的牌不同,即 lA, rA, lB, rB 四个数至少有一个是不同的。
Input第一行,两个正整数 n, m (1 ≤ n, m ≤ 105),分别表示牌组 A 的数量和牌组 B 的数量。
第二行,共 n 个正整数 a1, a2, ..., an (1 ≤ ai ≤ 20),第 i 个正整数表示牌组 A 中第 i 张牌的点数。
第三行,共 m 个正整数 b1, b2, ..., bn (1 ≤ bi ≤ 20),第 i 个正整数表示牌组 B 中第 i 张牌的点数。
Output输出共两行,每行一个非负整数。第一行的整数表示 dA 在所有不同的开局情况下的和,模 232 的值;第二行的整数表示 dB 在所有不同的开局情况下的和,模 232 的值。
ExamplesInput2 3 3 2 3 3 2Output
38 27Input
6 7 4 1 2 1 4 3 3 5 4 4 3 2 5Output
2202 5043Input
7 7 19 20 18 19 18 18 19 20 19 18 20 19 18 20Output
97628 118192Note
第一个样例中,开局情况共有 3 × 6 = 18 种。
Alice 成对打出手牌后,剩余手牌共有 3 种情况:{2}, {3}, {2, 3};Bob 剩余手牌有 6 种情况:{}(没有剩余), {2}, {2}, {3}, {3}, {2, 3}。
输出中第一行的答案计算过程为: