问题描述
给定一个正整数m,非负整数a(0≤a<m),以及一个正整数序列A=(A1,…,AN)。
定义一个正整数集合X,满足X={x>0∣x≡a(modm)}。
Alice和Bob将轮流进行游戏。他们交替执行以下操作,其中Alice先开始:
- 选择一个索引i(1≤i≤N)和一个正整数x∈X,使得x≤Ai。将Ai更改为Ai−x。如果不存在这样的(i,x),则当前玩家失败,游戏结束。
找出模998244353的数量,即Alice在第一轮可以选择的(i,x)对的数量,假设双方都以最优策略进行游戏。
约束条件
- 1≤N≤3×105
- 0≤a<m≤109
- max(1,a)≤Ai≤1018
输入
输入数据格式如下所示,从标准输入读取:
N m a
A1 A2 … AN
输出
输出模998244353的数量,即Alice在第一轮可以选择的(i,x)对的数量,假设双方都以最优策略进行游戏。
样例输入1
样例输出1
我们有X={1,2,3,4,5,…}。满足条件的三个(i,x)对:(1,4),(2,4),(3,4)。
样例输入2
样例输出2
我们有X={3,13,23,33,43,…}。满足条件的三个(i,x)对:(4,23),(5,3),(5,13)。
样例输入3
样例输出3
即使Alice采取最优策略,她也无法获胜。因此,没有满足条件的(i,x)对。
样例输入4
样例输出4
满足条件的833333333333334个(i,x)对。输出计数模998244353。