From 15cd7461edc0b16473a3a356dc63c934dfe77961 Mon Sep 17 00:00:00 2001 From: yashutoshbansal <39056334+yashutoshbansal@users.noreply.github.com> Date: Mon, 31 Oct 2022 22:34:48 +0530 Subject: [PATCH] Create PaintingtheFence.cpp --- PaintingtheFence.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 PaintingtheFence.cpp diff --git a/PaintingtheFence.cpp b/PaintingtheFence.cpp new file mode 100644 index 0000000..a898bfc --- /dev/null +++ b/PaintingtheFence.cpp @@ -0,0 +1,30 @@ +// C++ program for Painting Fence Algorithm +// optimised version + +#include +using namespace std; + +// Returns count of ways to color k posts +long countWays(int n, int k) +{ + long dp[n + 1]; + memset(dp, 0, sizeof(dp)); + long long mod = 1000000007; + + dp[1] = k; + dp[2] = k * k; + + for (int i = 3; i <= n; i++) { + dp[i] = ((k - 1) * (dp[i - 1] + dp[i - 2])) % mod; + } + + return dp[n]; +} + +// Driver code +int main() +{ + int n = 3, k = 2; + cout << countWays(n, k) << endl; + return 0; +}