aboutsummaryrefslogtreecommitdiff
path: root/other/count_all_pickup_delivery.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/count_all_pickup_delivery.cpp')
-rw-r--r--other/count_all_pickup_delivery.cpp23
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);
+}