atcoder#AGC022F. [AGC022F] Checkers

[AGC022F] Checkers

配点 : 16001600

問題文

X=10100X = 10^{100} とします。イナバは NN 個の駒を数直線上に置いていて、ii 個目の駒は座標 XiX^{i} にあります。

11 秒ごとに、イナバは 22 個の駒 AABB を選び、AABB に関して対称な点に動かし、その後 BB を取り除きます(AABB が同じ位置にあっても構わず、AA が移動後に他の駒と同じ位置にあっても構いません)。

N1N - 1 秒後には、駒が 11 個だけ残ります。その駒の位置としてありうるものは何通りあるか、その数を 109+710^{9} + 7 で割った余りを求めてください。

制約

  • 1N501 \leq N \leq 50
  • NN は整数である。

入力

入力は標準入力から以下の形式で与えられる。

NN

出力

最後に残る駒の位置としてありうるものの数を 109+710^{9} + 7 で割った余りを出力せよ。

3
12

駒が 33 個あり、それぞれ座標 10100,10200,1030010^{100}, 10^{200}, 10^{300} に置かれています。これらをそれぞれ AABBCC と呼びます。

考えられる駒の動かし方(1212 通り)のうち 22 つを示します。

  • 最初の 11 秒で AABB を飛び越えさせ、次の 11 秒で AACC を飛び越えさせる。AA の最終的な位置は 2×103002×10200+101002 \times 10^{300} - 2 \times 10^{200} + 10^{100} となる。
  • 最初の 11 秒で CCAA を飛び越えさせ、次の 11 秒で BBCC を飛び越えさせる。BB の最終的な位置は 2×1030010200+4×10100-2 \times 10^{300} - 10^{200} + 4 \times 10^{100} となる。

駒の動かし方は合計で 3×2×2=123 \times 2 \times 2 = 12 通りあり、そのすべてで最後の駒は異なる位置に残ります。

4
84
22
487772376

答えを 109+710^{9} + 7 で割った余りを出力することを忘れずに。