#ATarc158d. [ARC158D] Equation

[ARC158D] Equation

题目描述

给定正整数 nn 和一个不小于 55 的素数 pp

请你找到一组整数 (x,y,z)(x, y, z),满足以下所有条件:

  • 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 组测试数据,请分别给出每组的答案。

输入格式

输入按以下格式从标准输入读入:

TT

case1\text{case}_1

\vdots

caseT\text{case}_T

每组测试数据为一行,格式如下:

nn pp

输出格式

请输出 TT 行,第 ii 行输出第 ii 组测试数据的一个解 (x,y,z)(x, y, z),用空格分隔。

如果有多组解,输出任意一组均可。

样例 1

输入

3
1 7
2 7
10 998244353

输出

1 4 6
1 2 5
20380119 21549656 279594297

说明/提示

数据范围

  • 1T1051 \leq T \leq 10^5
  • 1n1091 \leq n \leq 10^9
  • pp 是满足 5p1095 \leq p \leq 10^9 的素数

样例解释 1

对于第一组测试数据:

  • $(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},所以满足条件。

由 ChatGPT 4.1 翻译