#P17536. [PM13683] RockPaperScissorsMagic

[PM13683] RockPaperScissorsMagic

题目描述

Alice 和 Bob 使用卡牌进行石头剪刀布。每张卡牌上画着石头、布或剪刀之一,三种卡牌数量均无限。

Bob 已经将若干张卡牌背面朝上排成一列。Alice 随后也排出同样数量的卡牌。对于每个位置 ii,双方翻开各自第 ii 张牌并按普通石头剪刀布规则比较:

  • 胜者得到 win 分,负者得到 lose 分;
  • 平局时双方各得到 tie 分。

Alice 发现 Bob 的卡牌上有记号。她虽然不知道某个记号具体对应石头、布还是剪刀,但能判断哪些牌的图案相同。数组 card 描述这些记号,其中每个元素属于 {0,1,2}\{0,1,2\},相同数字代表相同图案。实际的三种图案与 0,1,20,1,2 之间的对应关系未知,即一共有 3!3! 种可能映射。

Alice 想在翻牌前先宣布自己最后会得到多少分,然后摆好自己的卡牌,使得无论这三个记号实际分别对应哪种图案,她最终得到的分数都恰好等于自己宣布的分数

XX 为 Alice 可以完成这一“魔术”的方案数。若宣布的最终分数不同,或 Alice 摆出的卡牌序列不同,则视为不同方案。

Xmod(109+7)X\bmod(10^9+7)

输入格式

第一行输入四个整数 NNwinlosetie,其中 NN 为 Bob 的卡牌数量。

第二行输入 NN 个整数 card[i]

输出格式

输出一个整数,表示合法方案数对 109+710^9+7 取模后的结果。

数据范围

  • 1N10001\le N\le1000
  • 0card[i]20\le \text{card}[i]\le2
  • 0win,lose,tie10000\le \text{win},\text{lose},\text{tie}\le1000

样例 1

3 2 0 1
0 1 2
3

说明

在样例 1 中,Bob 的三张牌图案各不相同。Alice 可以宣布自己得到 33 分,并使用三张完全相同的牌。三种牌各对应一种合法方案。