1157. Eventually periodic sequence

单点时限: 2.0 sec

内存限制: 256 MB

Given is a function f: 0..N –> 0..N for a non-negative N and a non-negative integer n ≤ N. One can construct an infinite sequence F = f 1(n), f 2(n), … f k(n) … , where f k(n) is defined recursively as follows: f 1(n) = f(n) and f k+1(n) = f(f k(n)).

It is easy to see that each such sequence F is eventually periodic, that is periodic from some point onwards, e.g 1, 2, 7, 5, 4, 6, 5, 4, 6, 5, 4, 6 … . Given non-negative integer N ≤ 11000000 , n ≤ N and f, you are to compute the period of sequence F.

输入格式

Each line of input contains N, n and the a description of f in postfix notation, also known as Reverse Polish Notation (RPN). The operands are either unsigned integer constants or N or the variable x. Only binary operands are allowed: + (addition), * (multiplication) and % (modulo, i.e. remainder of integer division). Operands and operators are separated by whitespace. The operand % occurs exactly once in a function and it is the last (rightmost, or topmost if you wish) operator and its second operand is always N whose value is read from input. The following function:

2 x * 7 + N %

is the RPN rendition of the more familiar infix (2*x+7)%N. All input lines are shorter than 100 characters. The last line of input has N equal 0 and should not be processed.

输出格式

For each line of input, output one line with one integer number, the period of F corresponding to the data given in the input line.

样例

Input
10 1 x N %
11 1 x x 1 + * N %
1728 1 x x 1 + * x 2 + * N %
1728 1 x x 1 + x 2 + * * N %
100003 1 x x 123 + * x 12345 + * N %
0 0 0 N %
Output
1
3
6
6
369

5 人解决,10 人已尝试。

8 份提交通过,共有 49 份提交。

8.0 EMB 奖励。

创建: 17 年,2 月前.

修改: 6 年,10 月前.

最后提交: 3 年,2 月前.

来源: partychen

题目标签