atcoder#ARC158D. [ARC158D] Equation

[ARC158D] Equation

配点 : 800800

問題文

正整数 nn および,55 以上の素数 pp が与えられます.

次の条件をすべて満たす整数の組 (x,y,z)(x,y,z) を 1 つ求めてください.

  • 1x<y<zp11\leq x < y < z \leq p - 1.
  • $(x+y+z)(x^n+y^n+z^n)(x^{2n}+y^{2n}+z^{2n}) \equiv x^{3n}+y^{3n}+z^{3n}\pmod{p}$.

なお,このような組 (x,y,z)(x,y,z) は必ず存在することが証明できます.

TT 個のテストケースが与えられるので,それぞれについて答えを求めてください.

制約

  • 1T1051\leq T\leq 10^5
  • 1n1091\leq n\leq 10^9
  • pp5p1095\leq p\leq 10^9 を満たす素数

入力

入力は以下の形式で標準入力から与えられます.

TT

case1\text{case}_1

\vdots

caseT\text{case}_T

各テストケースは以下の形式で与えられます.

nn pp

出力

TT 行出力してください.ii 行目には ii 番目のテストケースの解を (x,y,z)(x,y,z) とするとき,x,y,zx,y,z をこの順に空白区切りで出力してください.

解が複数存在する場合,どれを出力しても正解となります.

3
1 7
2 7
10 998244353
1 4 6
1 2 5
20380119 21549656 279594297

ひとつめのテストケースについて,

  • $(x+y+z)(x^n+y^n+z^n)(x^{2n}+y^{2n}+z^{2n}) = (1+4+6)(1+4+6)(1+16+36) = 6413$
  • x3n+y3n+z3n=1+64+216=281x^{3n}+y^{3n}+z^{3n} = 1 + 64 + 216 = 281

であり,6413281(mod7)6413\equiv 281\pmod{7} なので,条件を満たしていることが確認できます.