在多重桥牌游戏中,两支队伍(我们称之为"磕绊者"和"算法师")各由 名玩家组成。
玩家围坐于一张圆桌旁,位置编号为 到 。奇数位置坐的是磕绊者,偶数位置坐的是算法师。游戏使用 张牌,牌面值为 。
每位玩家在游戏开始时持有其中两张牌。每位玩家均知道其余所有玩家手中的牌。
游戏由两局组成。在第一局中,位于随机位置 的玩家首先出牌,将其两张牌中的一张打出。
随后,位置依次为 的玩家依次出牌(各打出两张牌中的一张)。打出牌面值最高的牌的玩家所在队伍得一分。在第二局中,所有玩家打出各自剩余的那张牌。再次地,打出牌面值最高的牌的玩家所在队伍得一分。
输入将给出一个由 个整数组成的序列 ,用于描述游戏结果与首位出牌玩家的对应关系,具体而言:对于 ,若位于位置 的玩家首先出牌,且所有玩家均采取最优策略,则算法师队伍恰好得 分。
请求出与上述结果序列相符的不同发牌方案数,并输出该数除以 的余数。若对于某个位置 和某个牌面值 ,位于位置 的玩家在其中一种方案中持有牌面值为 的牌,而在另一种方案中不持有,则称这两种方案不同。
你需要对 个相互独立的测试用例求解此问题。