問題一覧 > 通常問題

No.2631 Rectangle Grid Game

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 49
作問者 : kenken714 / テスター : ebi_fly noya2 👑 potato167
2 ProblemId : 10658 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-02-15 23:33:31

問題文

これから、AliceとBobの2人のプレイヤーで、グリッド上で陣地を取りあうゲームをします。

HH マス、横 WW マスのグリッドが与えられます。ここで、左上のマスは (1,1)(1, 1) 、右下のマスは (H,W)(H, W) です。

初期状態ではAliceとBobの駒がそれぞれマス (XA,YA),(XB,YB)(X_A, Y_A), (X_B, Y_B) ((XA,YA)(XB,YB)(X_A,Y_A)\neq(X_B,Y_B)) に置かれています。

また、マス (XA,YA)(X_A, Y_A) はAliceの陣地、マス (XB,YB)(X_B, Y_B) はBobの陣地であり、それ以外のマスはどちらの陣地でもありません。

Aliceが先手となり、手番を交互に入れ替えます。自分の手番では、次に示す順番で操作をします。

  1. 自分の駒が現在いるマスを(X,Y)(X, Y)として、()(*) の条件を満たす、自分の陣地のマスまたはどちらの陣地でもないマス (X,Y)(X^\prime, Y^\prime) を選択する。
  2. ()(*) マス(X,Y)(X, Y)とマス(X,Y)(X^\prime, Y^\prime)を1つの対角線とするような長方形領域の中に、相手の陣地となっているマスが存在しない。
    厳密に述べると、 min(X,X)imax(X,X)\min(X, X^\prime) \le i \le \max(X, X^\prime) , min(Y,Y)jmax(Y,Y)\min(Y, Y^\prime) \le j \le \max(Y, Y^\prime) を満たす全ての整数 ii, jjについて、 マス (i,j)(i, j)は相手の陣地ではない。
  3. 自分の駒を (X,Y)(X^\prime, Y^\prime) に移動する。
  4. ()(*) で指定した長方形領域の中のマスを、全て自分の陣地にする。

Bobの1010010^{100} 回目の手番が終了したとき、ゲームが終了します。

ゲームの終了時、自分の陣地であるマスが多い方のプレイヤーが勝利となります。そのようなマスが2人とも同数の場合、引き分けとなります。

それぞれが最善な動きをした時、Aliceが勝利することとなる、マスの初期位置を与える変数 (XA,YA,XB,YB)(X_A, Y_A, X_B, Y_B) の組の個数を求めてください。

ただし、そのような個数は非常に大きくなることがあるため、 998,244,353998,244,353 で割った余りを求めてください。

制約

  • 2H1092 \le H \le 10^9
  • 2W1092 \le W \le 10^9
  • 入力で与えられる値は全て整数

入力

入力は以下の形式で与えられます。
HH WW

出力

求める変数の組の個数を 998,244,353998,244,353 で割った余りを出力してください。 最後に改行してください。

サンプル

サンプル1
入力
3 4
出力
94

例えば、 (XA,YA,XB,YB)=(1,1,3,4)(X_A, Y_A, X_B, Y_B) = (1, 1, 3, 4)のとき、

  • Aliceがマス (2,3)(2, 3) に移動
  • Bobがマス (3,1)(3, 1) に移動
  • Aliceがマス (1,4)(1, 4) に移動
というようにゲームが進むと、Aliceが 88 マス、Bobが 44 マスの陣地を持っているため、Aliceが勝利します。
ほかのすべての例についても考えると、Aliceが勝利する変数の組は合計で 9494 通りあります。

サンプル2
入力
2 2
出力
0

初期状態にかかわらず、引き分けになります。

サンプル3
入力
3141 5926
出力
428758522

998,244,353998,244,353 で割った余りを出力してください。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。