AT_arc118_d [ARC118D] Hamiltonian Cycle
Description
[problemUrl]: https://atcoder.jp/contests/arc118/tasks/arc118_d
素数 $ P $ および正の整数 $ a,\ b $ が与えられます。 $ P $ 項からなる整数列 $ A\ =\ (A_1,\ A_2,\ \ldots,\ A_P) $ であって、次の条件をすべて満たすものが存在するかを判定してください。 存在する場合には、そのようなものをひとつ出力してください。
- $ 1\leq\ A_i\leq\ P\ -\ 1 $
- $ A_1\ =\ A_P\ =\ 1 $
- $ (A_1,\ A_2,\ \ldots,\ A_{P-1}) $ は、$ (1,\ 2,\ \ldots,\ P-1) $ を並べ替えたものである
- 任意の $ 2\leq\ i\leq\ P $ に対して、次のうち少なくともひとつが成り立つ:
- $ A_{i}\ \equiv\ aA_{i-1}\pmod{P} $
- $ A_{i-1}\ \equiv\ aA_{i}\pmod{P} $
- $ A_{i}\ \equiv\ bA_{i-1}\pmod{P} $
- $ A_{i-1}\ \equiv\ bA_{i}\pmod{P} $
Input Format
入力は以下の形式で標準入力から与えられます。
> $ P $ $ a $ $ b $
Output Format
問題の条件を満たす整数列 $ A $ が存在するならば `Yes` を、そうでなければ `No` を出力してください。 `Yes` の場合には、$ 2 $ 行目にそのような整数列 $ A $ の各要素を、空白で区切って 1 行で出力してください。
> $ A_1 $ $ A_2 $ $ \ldots $ $ A_P $
条件を満たす整数列が複数存在する場合は、どれを出力しても正解となります。
Explanation/Hint
### 制約
- $ 2\leq\ P\leq\ 10^5 $
- $ P $ は素数
- $ 1\leq\ a,\ b\ \leq\ P\ -\ 1 $
### Sample Explanation 1
$ P\ =\ 13 $ を法として、 - $ A_2\equiv\ 5A_1 $ - $ A_2\equiv\ 4A_3 $ - $ \vdots $ - $ A_{13}\equiv\ 4A_{12} $ が成り立ち、この整数列は条件を満たすことが確認できます。