 Generalised Fibonacci numbers
Hard Accuracy: 49.02% Submissions: 994 Points: 8

Consider the generalized Fibonacci number G, which is dependent on a, b and c as follows :-
G(1) = 1, G(2) = 1. G(n) = aG(n-1) + bG(n-2) + c.
Your task is to calculate G(n)%m for given values of n and m.

Example 1:

Input:
a = 3, b = 3, c = 3, n = 3, m = 5
Output:
4
Explanation:
G(3) = 3*G(2) + 3*G(1) + 3 = 9%5 = 4

Example 2:

Input:
a = 2, b = 2, c = 2, n = 4, m = 100
Output:
16
Explanation:
G(3) = 2*G(2) + 2*G(1) + 2 = 6
G(4) = 2*G(3) + 2*G(2) + 2 = 16%100 = 16


You don't need to read input or print anything. Your task is to complete the function genFibNum() which takes 5 Integers a, b, c, n, and m as input and returns G(n)%m.

Expected Time Complexity: O(logn)
Expected Auxiliary Space: O(1)

Constraints:
1 <= a,b,c,n,m <= 109+7

We are replacing the old Disqus forum with the new Discussions section given below.

### Editorial

We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?

#### My Submissions:  