小红的双生排列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红定义一个排列是双生排列,当且仅当任意相邻两项之和均为奇数。
\hspace{15pt}现在小红想知道,长度为 n 的双生排列共有多少种?由于答案可能过大,请对 10^9+7 取模。

\hspace{15pt}长度为 n排列是由 1 \sim nn 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

\hspace{15pt}输入一个整数 n \left(2 \leqq n \leqq 10^5\right) 代表排列的长度。

输出描述:

\hspace{15pt}输出一个整数,代表长度为 n 的双生排列数量对 10^9+7 取模的答案。
示例1

输入

复制
3

输出

复制
2

说明

\hspace{15pt}在这个样例中,长度为 3 的排列有:
\hspace{23pt}\bullet\, \{1,2,3\} 且为双生排列;
\hspace{23pt}\bullet\, \{1,3,2\}
\hspace{23pt}\bullet\, \{2,1,3\}
\hspace{23pt}\bullet\, \{2,3,1\}
\hspace{23pt}\bullet\, \{3,1,2\}
\hspace{23pt}\bullet\, \{3,2,1\} 且为双生排列。