407736: GYM102888 K 抽鬼牌,打伤害

Memory Limit:512 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

K. 抽鬼牌,打伤害time limit per test2 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard output

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, 35 张牌,一对一对地打出点数相等的牌后,手中剩下一张点数为 3 的牌;Bob 手中有点数为 8, 8, 8, 84 张牌,一对一对地打出点数相等的牌后,手中没有剩下的牌。

接下来 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 的值

ExamplesInput
2 3
3 2
3 3 2
Output
38
27
Input
6 7
4 1 2 1 4 3
3 5 4 4 3 2 5
Output
2202
5043
Input
7 7
19 20 18 19 18 18 19
20 19 18 20 19 18 20
Output
97628
118192
Note

第一个样例中,开局情况共有 3 × 6 = 18 种。

Alice 成对打出手牌后,剩余手牌共有 3 种情况:{2}, {3}, {2, 3};Bob 剩余手牌有 6 种情况:{}(没有剩余), {2}, {2}, {3}, {3}, {2, 3}。

输出中第一行的答案计算过程为:

输出中第二行的答案计算过程为:

加入题单

算法标签: