配点 : 800 点
問題文
整数 N,M,V,A が与えられます.
次のような操作を考えます.
- 1 以上 V 以下の整数からなる長さ N の整数列 x=(x1,x2,⋯,xN) を選ぶ.
- 1 以上 V 以下の整数からなる長さ M の整数列 y=(y1,y2,⋯,yM) を選ぶ.
- 変数 a を用意する.最初,a=A とする.
- i=0,1,⋯,N×M−1 に対して,以下の動作を行う.- a の値を,a,x(imodN)+1,y(imodM)+1 の中央値で置き換える.
- a の値を,a,x(imodN)+1,y(imodM)+1 の中央値で置き換える.
- 最終的な a の値を出力する.
整数列 x,y としてありうるものをすべて試したとき,操作によって出力される値の総和を 998244353 で割った余りを求めてください.
制約
- 1≤N,M≤200000
- 1≤A≤V≤200000
- 入力される値はすべて整数である
入力
入力は以下の形式で標準入力から与えられる.
N M V A
出力
答えを出力せよ.
2 1 2 1
11
例えば,x=(1,2),y=(2) の時,操作の様子は以下のようになります.
- a=1 と初期化する.
- i=1: a の値を,a(=1),x1(=1),y1(=2) の中央値,すなわち 1 で置き換える.
- i=2: a の値を,a(=1),x2(=2),y1(=2) の中央値,すなわち 2 で置き換える.
- a(=2) を出力.
最終的に 2 が出力されるのは,(x=(1,2),y=(2)),(x=(2,1),y=(2)),(x=(2,2),y=(2)) の 3 ケースで,それ以外の 5 ケースではすべて 1 が出力されます.
よって求める答えは,2×3+1×5=11 です.
2 2 5 4
2019
2100 2300 2201 2022
407723438