From abb3305568e8bda7a7661bbae5281a0596c84d8b Mon Sep 17 00:00:00 2001 From: Lam Haoyin Date: Sun, 6 Mar 2022 10:19:51 +0800 Subject: [PATCH] add: 220306 [cpp] --- cpp/2203/220306.cpp | 25 +++++++++++++++++++++++++ cpp/2203/CMakeLists.txt | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 cpp/2203/220306.cpp diff --git a/cpp/2203/220306.cpp b/cpp/2203/220306.cpp new file mode 100644 index 0000000..670dff7 --- /dev/null +++ b/cpp/2203/220306.cpp @@ -0,0 +1,25 @@ +#include + +class Solution { +private: + inline static const int MOD = 1000000007; +public: + // OEIS A000680 a(n) = (2n)!/2^n. + static constexpr int countOrders(int n) { + if (n == 1) + return 1; + if (n == 2) + return 6; + unsigned long long ret = 6; + for (int i = 3; i <= n; ++i) { + ret = (ret * i) % MOD; + ret = (ret * ((i << 1) - 1)) % MOD; + } + return ret % MOD; + } +}; + +int main() { + std::cout << Solution::countOrders(5); + return 0; +} diff --git a/cpp/2203/CMakeLists.txt b/cpp/2203/CMakeLists.txt index 118e96b..3b7275a 100644 --- a/cpp/2203/CMakeLists.txt +++ b/cpp/2203/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2203) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2203 220306-CN.cpp) +ADD_EXECUTABLE(2203 220306.cpp)