問題一覧 > 通常問題

No.2631 Rectangle Grid Game

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

問題文

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

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

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

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

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

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

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

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

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

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

制約

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

入力

入力は以下の形式で与えられます。
$H$ $W$

出力

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

サンプル

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

例えば、 $(X_A, Y_A, X_B, Y_B) = (1, 1, 3, 4)$のとき、

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

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

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

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

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

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