已结束 “码王杯”黑龙江工程学院第十届程序设计竞赛

A1800 | CharyChung和HashBuke的数字游戏

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

给定一个正整数 $m$,一个非负整数 $a(0 \leq a < m)$,以及一个正整数序列 $A=(A_1, \ldots, A_N)$。

定义一组正整数集合 $X$,其中 $X=\{x > 0 | x \equiv a \, (\text{mod} \, m)\}$。

CharyChung和HashBuke将轮流进行游戏,CharyChung先开始:

选择一个索引 $i$($1 \leq i \leq N$)和一个属于 $X$ 的正整数 $x$,使得 $x \leq A_i$,然后将 $A_i$ 替换为 $A_i - x$。如果没有这样的 $i, x$,当前玩家输掉游戏并且游戏结束。
找出在CharyChung首次操作时,如果双方之后都采取最优策略,CharyChung能赢得游戏的 $i, x$ 对的数量,结果对 $998244353$ 取模。

输入格式

$N\ m\ a$
$A_1\ A_2 \ \dots\ A_N$
数据范围:
- $1 \leq N \leq 3 \times 10^5$
- $0 \leq a < m \leq 10^9$
- $max(1, a) \leq A_i \leq 10^{18}$

输出格式

打印出CharyChung在首次操作时可以选择的满足条件的 $i, x$ 对的数量,结果对 $998244353$ 取模。

输入输出样例

输入 #1
3 1 0
5 6 7
输出 #1
3
输入 #2
5 10 3
5 9 18 23 27
输出 #2
3
输入 #3
4 10 8
100 101 102 103
输出 #3
0
C++ 编辑器
输入
输出