CF1190F Tokitsukaze and Powers

题目描述

Tokitsukaze 正在玩由 SkywalkerT 设计的密室逃脱游戏。在这个游戏中,她需要在房间里寻找隐藏的线索,以揭示逃脱的方法。 一段时间后,她意识到唯一的逃脱方式是打开数字门锁,因为她偶然进入了一个秘密隔间,发现了一些线索,可以解释为: - 只有输入 $n$ 个可能的不同密码才能打开门; - 密码必须是 $0$ 到 $m-1$ 之间的整数; - 如果 $x$ 和 $m$ 不是互质的(即 $x$ 和 $m$ 有大于 $1$ 的公约数),则 $x$ 不能作为密码($0 \leq x < m$); - 如果存在非负整数 $e$ 和 $k$,使得 $p^e = k m + x$,其中 $p$ 是一个秘密整数,则 $x$ 不能作为密码($0 \leq x < m$); - 任何不违反上述规则的整数都可以作为密码; - 房间里隐藏了若干整数,但只有其中一个可以是 $p$。 幸运的是,她发现门锁上记录了 $n$ 和 $m$。然而,让 Tokitsukaze 感到沮丧的是,她数学不太好。现在她已经找到了一个可能是 $p$ 的整数,她希望你帮她找出 $n$ 个可能的密码,或者判断该整数不可能是 $p$。

输入格式

一行包含三个整数 $n$、$m$ 和 $p$($1 \leq n \leq 5 \times 10^5$,$1 \leq p < m \leq 10^{18}$)。 保证 $m$ 是某个质数的正整数次幂。

输出格式

如果可能的不同密码数量小于 $n$,输出一个整数 $-1$。 否则,输出 $n$ 个不同的、范围在 $0$ 到 $m-1$ 之间的整数作为密码。你可以以任意顺序输出这些整数。如果有多组解,输出任意一组即可。

说明/提示

在第一个样例中,没有可能的密码。 在最后三个样例中,给定的整数 $n$ 等于对于给定的 $m$ 和 $p$ 能够得到的不同密码数量,因此如果忽略输出数字的顺序,解是唯一的,如上所示。 由 ChatGPT 4.1 翻译