配点 : 900 点
問題文
正整数 m, 非負整数 a (0≤a<m) および正整数列 A=(A1,…,AN) が与えられます.
正整数からなる集合 X を X={x>0∣x≡a(modm)} により定めます.
先手太郎君と後手次郎君が対戦ゲームをします.ゲームでは先手太郎君の手番から始めて,交互に以下の操作を行います.
- 添字 i (1≤i≤N) と正整数 x∈X の組 (i,x) であって,x≤Ai を満たすものをひとつ選ぶ.Ai を Ai−x に変更する.ただしそのような (i,x) が存在しないならば,手番のプレイヤーの負けとしてゲームを終了する.
先手太郎君が最初の手番に選ぶことができる (i,x) のうち,それ以降の手番で両者が最善を尽くした場合に先手太郎君が勝つことができるものの個数を 998244353 で割った余りを答えてください.
制約
- 1≤N≤3×105
- 0≤a<m≤109
- max(1,a)≤Ai≤1018
入力
入力は以下の形式で標準入力から与えられます.
N m a
A1 A2 … AN
出力
先手太郎君が最初の手番に選ぶことができる (i,x) のうち,それ以降の手番で両者が最善を尽くした場合に先手太郎君が勝つことができるものの個数を 998244353 で割った余りを出力してください.
3 1 0
5 6 7
3
X={1,2,3,4,5,…} です.条件を満たす (i,x) は (1,4), (2,4), (3,4) の 3 個です.
5 10 3
5 9 18 23 27
3
X={3,13,23,33,43,…} です.条件を満たす (i,x) は (4,23), (5,3), (5,13) の 3 個です.
4 10 8
100 101 102 103
0
先手太郎君は最善を尽くしても勝つことはできません.したがって条件を満たす (i,x) は 0 個です.
5 2 1
111111111111111 222222222222222 333333333333333 444444444444444 555555555555555
943937640
条件を満たす (i,x) は 833333333333334 個あります.
998244353 で割った余りを出力してください.