diff options
Diffstat (limited to 'other/count_all_pickup_delivery.cpp')
-rw-r--r-- | other/count_all_pickup_delivery.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/other/count_all_pickup_delivery.cpp b/other/count_all_pickup_delivery.cpp new file mode 100644 index 0000000..0d82d5a --- /dev/null +++ b/other/count_all_pickup_delivery.cpp @@ -0,0 +1,23 @@ +#include "leetcode.h" +#define lli long long int + +class Solution { +public: + int countOrders(int n) { + lli mod = 1e9 + 7; + vector<lli> dp(n + 2); + dp[1] = 1; + dp[2] = 6; + for (lli i = 3; i <= n; i++) { + lli x = 2 * i - 1; + lli combs = x * (x + 1) / 2; + dp[i] = (dp[i - 1] * combs) % mod; + } + return dp[n]; + } +}; + +int main() { + Solution obj; + cout << obj.countOrders(2); +} |