O - Triangle
解説
/


実行時間制限: 2 sec / メモリ制限: 1024 MiB
配点 : 600 点
問題文
H \times W の格子点のうち相異なる3点を結んでできる三角形の個数を求めてください。
より厳密には、次の条件を満たす二次元平面上の3点の組 (X_1,Y_1),(X_2,Y_2),(X_3,Y_3) の個数を求めてください。
- 0 \leq X_1,X_2,X_3 < H
- 0 \leq Y_1,Y_2,Y_3 < W
- X_1,Y_1,X_2,Y_2,X_3,Y_3 は整数
- (X_1,Y_1),(X_2,Y_2),(X_3,Y_3) は相異なる
- (X_1,Y_1),(X_2,Y_2),(X_3,Y_3) を結んでできる図形は非退化な三角形である
ただし、並べ替えにより同じ組が得られる場合は1つの組とみなします。 また、答えは非常に大きくなる可能性があるため、 998244353 で割った余りを出力してください。
制約
- 2 \leq H,W \leq 10^{5}
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
H W
出力
答えを 998244353 で割った余りを出力せよ。
入力例 1
2 2
出力例 1
4
例えば、(0,0),(0,1),(1,0) を結ぶと非退化な三角形が得られます。 2×2 の格子点から 3 点を選んで非退化な三角形を作る方法は 4 通りです。よって 4 を出力してください。
入力例 2
5 6
出力例 2
3820
入力例 3
128 256
出力例 3
353626996
答えを 998244353 で割った余りを出力してください。