Amebas on Torus

2 secs 1024 MB
askr_58's icon askr_58

Excuse

初投稿につき、問題文が分かりにくかったり、面白くなかったり、あるいはその他何かしらの不備があったりするかもしれません。ご指摘・ご助言等ございましたら作者のTwitter(X)マシュマロにいただけると幸いです。

問題文

縦横 NN マスのグリッドがあります。左上隅のマスを (0,0)(0,0) とし、そこから下に ii マス、右に jj マス(ただし 0i,jN10\leq i,j\leq N-1 )進んだ地点にあるマスを (i,j)(i,j) と呼びます。 時刻 t=0t=0 において (0,0)(0,0) にアメーバが 11 匹存在し、それ以外にアメーバは存在しません。これから、時刻 t=1,2,3,......t=1,2,3,...... に、その時刻において存在するすべてのアメーバが、次のような規則に従って同時に、無視できる程度の時間で増殖します。

  • 現在アメーバが存在するマスを (i,j)(i,j) とすると、アメーバは 44 匹に分裂し、その後 (i+1modN,j),(i1modN,j),(i,j+1modN),(i,j1modN)(i+1\bmod N,j),(i-1\bmod N,j),(i,j+1\bmod N),(i,j-1\bmod N)44 マスそれぞれに、分裂したアメーバが 11 匹ずつ移動する。言い換えれば、時刻 t(t1)t(t\geq 1) の分裂が終わった直後に (i,j)(i,j) に存在するアメーバの数は、その分裂の直前に (i1modN,j),(i+1modN,j),(i,j1modN),(i,j+1modN)(i-1\bmod N,j),(i+1\bmod N,j),(i,j-1\bmod N),(i,j+1\bmod N)44 マスに存在したアメーバの数の和に等しい。

非負整数 TT が与えられます。時刻 t=T+0.5t=T+0.5 において (0,0)(0,0) に存在するアメーバの数を 998244353998244353 で割った余りを求めてください。

制約

  • 3N10003\leq N\leq 1000
  • 0T2×1060\leq T\leq 2\times 10^6

入力

入力は全て整数である。

N T

出力

答えを出力せよ。

サンプル

入力1
3 4
出力1
36

N=3N=3 のとき、 t=1.5,2.5,3.5,4.5t=1.5,2.5,3.5,4.5 の各時点において、各マスのアメーバの数は下図のようになります。よって、 3636 を出力します。

t=1.5      t=2.5       t=3.5       t=4.5
 0 1 1      4 1 1       4 9 9       36 25 25
 1 0 0      1 2 2       9 6 6       25 30 30
 1 0 0      1 2 2       9 6 6       25 30 30
入力2
10 1
出力2
0

t=1.5t=1.5 の時点で、(0,0)(0,0) にはアメーバは 11 匹も存在しません。

入力3
1000 0
出力3
1
入力4
100 100000
出力4
808960092

998244353998244353 で割ったあまりを出力してください。

提出


Go (1.21)