[AGC022F] Checkers

题意翻译

令 $x=10^{100}$, 数轴上有 $n$ 个点, 第 $i$ 个点的坐标为 $x^i$. 进行 $n-1$ 次操作, 每次操作选择两点 $A$ 和 $B$, 将 $A$ 移动到 $A$ 关于 $B$ 的对称的位置并删去 $B$. 求最后剩下的一个数有多少种可能的取值. $n\leqslant 50$

题目描述

[problemUrl]: https://atcoder.jp/contests/agc022/tasks/agc022_f $ X\ =\ 10^{100} $ とします。イナバは $ N $ 個の駒を数直線上に置いていて、$ i $ 個目の駒は座標 $ X^{i} $ にあります。 $ 1 $ 秒ごとに、イナバは $ 2 $ 個の駒 $ A $、$ B $ を選び、$ A $ を $ B $ に関して対称な点に動かし、その後 $ B $ を取り除きます($ A $、$ B $ が同じ位置にあっても構わず、$ A $ が移動後に他の駒と同じ位置にあっても構いません)。 $ N\ -\ 1 $ 秒後には、駒が $ 1 $ 個だけ残ります。その駒の位置としてありうるものは何通りあるか、その数を $ 10^{9}\ +\ 7 $ で割った余りを求めてください。

输入输出格式

输入格式


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

输出格式


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

输入输出样例

输入样例 #1

3

输出样例 #1

12

输入样例 #2

4

输出样例 #2

84

输入样例 #3

22

输出样例 #3

487772376

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 50 $ - $ N $ は整数である。 ### Sample Explanation 1 駒が $ 3 $ 個あり、それぞれ座標 $ 10^{100},\ 10^{200},\ 10^{300} $ に置かれています。これらをそれぞれ $ A $、$ B $、$ C $ と呼びます。 考えられる駒の動かし方($ 12 $ 通り)のうち $ 2 $ つを示します。 - 最初の $ 1 $ 秒で $ A $ に $ B $ を飛び越えさせ、次の $ 1 $ 秒で $ A $ に $ C $ を飛び越えさせる。$ A $ の最終的な位置は $ 2\ \times\ 10^{300}\ -\ 2\ \times\ 10^{200}\ +\ 10^{100} $ となる。 - 最初の $ 1 $ 秒で $ C $ に $ A $ を飛び越えさせ、次の $ 1 $ 秒で $ B $ に $ C $ を飛び越えさせる。$ B $ の最終的な位置は $ -2\ \times\ 10^{300}\ -\ 10^{200}\ +\ 4\ \times\ 10^{100} $ となる。 駒の動かし方は合計で $ 3\ \times\ 2\ \times\ 2\ =\ 12 $ 通りあり、そのすべてで最後の駒は異なる位置に残ります。 ### Sample Explanation 3 答えを $ 10^{9}\ +\ 7 $ で割った余りを出力することを忘れずに。