数列复读指针

入门⏱ 1000ms💾 256MB#P2295🏷️ 模拟

题目描述

有个数列生成器,规则为:$a_0 = 1$, $a_{i+1} = (A \times a_i + a_i \bmod B) \bmod C$。 问该数列第一次出现重复项的位置:即最小的 $i$,使得 $a_i$ 在 $a_0 \ldots a_{i-1}$ 中出现过。 若该位置超过 $2 \times 10^6$,输出 $-1$。

输入格式

一行三个整数 $A, B, C$。

输出格式

一行一个整数:第一次出现重复项的下标,超过 $2 \times 10^6$ 输出 $-1$。

数据范围

$$1 \le A, B, C \le 10^9$$
。

样例输入 #1
2 2 9\n
样例输出 #1
4
样例输入 #2
1 1 1\n
样例输出 #2
2