#hASHybttg020109. 1463:门票

1463:门票

好的,这是整理好的题面,格式清晰。


题目描述

有一个数列 ( a_n ),定义如下:

  • ( a_0 = 1 )
  • ( a_{i+1} = (A \times a_i + a_i \bmod B) \bmod C ),其中 ( a_i \bmod B ) 是 ( a_i ) 除以 ( B ) 的余数。

要求找到这个数列第一次出现重复的项的标号(即找到最小的 ( k ),使得 ( a_k ) 在之前已经出现过,输出 ( k ))。

如果数列在 ( 2\times 10^6 ) 项内没有重复,则输出 ( -1 )。


输入格式

一行三个整数 ( A, B, C )。

输出格式

输出第一次出现重复项的位置 ( k )(即该重复项第一次出现时的索引),如果超过 ( 2\times 10^6 ) 项仍未出现重复,输出 ( -1 )。


数据范围

  • 30% 的数据:( A, B, C \le 10^5 )
  • 100% 的数据:( A, B, C \le 10^9 )

输入样例

2 2 9

输出样例

4

样例解释

给定 ( A=2, B=2, C=9 )。

递推公式: [ a_{i+1} = (2 \times a_i + a_i \bmod 2) \bmod 9 ]

计算:

  • ( a_0 = 1 )
  • ( a_1 = (2\times 1 + 1\bmod 2) \bmod 9 = (2 + 1) \bmod 9 = 3 )
  • ( a_2 = (2\times 3 + 3\bmod 2) \bmod 9 = (6 + 1) \bmod 9 = 7 )
  • ( a_3 = (2\times 7 + 7\bmod 2) \bmod 9 = (14 + 1) \bmod 9 = 15 \bmod 9 = 6 )
  • ( a_4 = (2\times 6 + 6\bmod 2) \bmod 9 = (12 + 0) \bmod 9 = 12 \bmod 9 = 3 )

此时 ( a_4 = 3 ),而 ( a_1 = 3 ) 已经出现过,第一次出现重复项的位置是 4(因为 ( a_4 ) 重复了 ( a_1 ) 的值)。

输出 4。


这样题目就完整了,包括题意、输入输出格式、数据范围、样例及解释。