AGS - Aritho-geometric Series (AGS)

Arithmetic and geometric progressions are 2 of the well known progressions in maths.

Arithmetic progression (AP) is a set in which the difference between 2 consecutive numbers is constant. For example: 1, 3, 5, 7, 9... In this series the difference between 2 numbers is 2.

Geometric progression (GP) is a set in which the ratio of 2 consecutive numbers is the same. For example: 1, 2, 4, 8, 16... In this the ratio of the numbers is 2.

What if there is a series in which we multiply a(n) by 'r' to get a(n+1) and then add 'd' to a(n+1) to get a(n+2)?

For example: let's say d = 1 and r = 2 and a(1) = 1, the series would be 1, 2, 4, 5, 10, 11, 22, 23, 46, 47, 94, 95, 190...

We add d to a(1) and then multiply a(2) with r and so on.

Your task is, given 'a', 'd' and 'r' to find the a(n) term.

since the numbers can be very large, you are required to print the numbers modulo 'mod' - mod will be supplied in the test case.

Input

First line of input will have number 't' indicating the number of test cases.

Each of the test cases will have 2 lines. The first line will have 3 numbers 'a', 'd' and 'r'. The second line will have 2 numbers 'n' and 'mod'.

a = first term of the AGS.

d = the difference element.

r = the ratio element.

n = nth term required to be found.

mod = need to print the result modulo mod

Output

For each test case print "a(n) % mod" in a separate line.

Example

Input:
2
1 1 2
13 7
2 2 2
10 8

Output:
1
6

Explanation

For the first test case the series is 1, 2, 4, 5, 10, 11, 22, 23, 46, 47, 94, 95, 190..., the 13th term is 190, and 190 % 7 = 1.

Notes

The value of a, d, r, n and mod will be less than 108 and more than 0.

For every series, the second term will be a+d and third term will be (a+d)*r, and so on.


Added by:Devil D
Date:2012-03-09
Time limit:1s
Source limit:10000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:Own

hide comments
2013-12-30 12:36:57 shiva_hellgeek
Got 15 WAs in summer vacations.
Now AC in 1 go in Winters ;)
Really enjoyed solving this one.
2013-08-05 08:20:46 darryl
It seems that the testcase lacks condition where a+d is bigger than the mod.
2013-07-04 12:57:56 pm
getting wa in python at running(4),
nd tle in C(same algo)at running(5) ... pls help ?? if dere any tricky case.....

Last edit: 2013-07-04 13:12:04
2013-06-19 15:20:42 Shubham Gupta
Getting WA in the 5th case, can anyone suggest something where I am going wrong? pls pls
2013-06-19 14:41:51 Man Mohan Mishra
awesome problem.....
maths involved !!
got AC in 2nd attempt :)
2013-06-08 08:46:45 Ankur
Finally Finally that green light !!! :) :)
Learnt a new thing about % ..
Great Problem.. Thanks @Devil D

Last edit: 2013-06-08 11:49:26
2013-06-07 13:31:06 Aditya Bahuguna
this one was not that easy.... :) Greatest relief!!! AC'


Last edit: 2013-06-07 13:37:51
2013-08-04 04:43:27 aqfaridi
finally .. got AC :)
2013-04-26 05:55:43 Ouditchya Sinha
My python solution works on ideone but here it's showing NZEC error. Please check my submission ( ID : 9163108 ). Code on ideone : <snip>

Last edit: 2022-07-14 22:05:54
2013-03-07 07:01:41 Arpit Temani
getting wa
plz check solution
<snip>


Last edit: 2022-07-14 22:06:42
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.