atcoder#ABC270G. [ABC270G] Sequence in mod P

[ABC270G] Sequence in mod P

配点 : 600600

問題文

次の漸化式で定められる数列 X=(X0,X1,)X=(X_0,X_1,\ldots) があります。

$X_i = \left\{ \begin{array}{ll} S & (i = 0)\\ (A X_{i-1}+B) \bmod P & (i \geq 1) \end{array} \right.$

Xi=GX_i=G となる ii が存在するか判定し、存在するならばそのような最小の ii を求めてください。 ここで、xmodyx \bmod y は、xxyy で割ったあまり(最小非負剰余)を表すものとします。

11 ファイルにつき TT 個のテストケースが与えられます。

制約

  • 1T1001 \leq T \leq 100
  • 2P1092 \leq P \leq 10^9
  • PP は素数
  • 0A,B,S,G<P0\leq A,B,S,G < P
  • 入力に含まれる値は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

TT

case1\mathrm{case}_1

case2\mathrm{case}_2

\vdots

caseT\mathrm{case}_T

各テストケースは以下の形式で与えられる。

PP AA BB SS GG

出力

TT 行出力せよ。 tt 行目には、caset\mathrm{case}_t について、Xi=GX_i=G となる最小の ii を出力せよ。そのような ii が存在しないならかわりに -1 を出力せよ。

3
5 2 1 1 0
5 2 2 3 0
11 1 1 0 10
3
-1
10

11 番目のケースについて、X=(1,3,2,0,)X=(1,3,2,0,\ldots) であることから、Xi=0X_i=0 となる最小の ii33 です。 22 番目のケースについて、X=(3,3,3,3,)X=(3,3,3,3,\ldots) であることから、Xi=0X_i=0 となる ii は存在しません。