配点 : 700 点
問題文
素数 P および正の整数 a,b が与えられます。
P 項からなる整数列 A=(A1,A2,…,AP) であって、次の条件をすべて満たすものが存在するかを判定してください。
存在する場合には、そのようなものをひとつ出力してください。
- 1≤Ai≤P−1
- A1=AP=1
- (A1,A2,…,AP−1) は、(1,2,…,P−1) を並べ替えたものである
- 任意の 2≤i≤P に対して、次のうち少なくともひとつが成り立つ:- Ai≡aAi−1(modP)
- Ai−1≡aAi(modP)
- Ai≡bAi−1(modP)
- Ai−1≡bAi(modP)
- Ai≡aAi−1(modP)
- Ai−1≡aAi(modP)
- Ai≡bAi−1(modP)
- Ai−1≡bAi(modP)
制約
- 2≤P≤105
- P は素数
- 1≤a,b≤P−1
入力
入力は以下の形式で標準入力から与えられます。
P a b
出力
問題の条件を満たす整数列 A が存在するならば Yes
を、そうでなければ No
を出力してください。
Yes
の場合には、2 行目にそのような整数列 A の各要素を、空白で区切って 1 行で出力してください。
A1 A2 … AP
条件を満たす整数列が複数存在する場合は、どれを出力しても正解となります。
13 4 5
Yes
1 5 11 3 12 9 7 4 6 8 2 10 1
P=13 を法として、
- A2≡5A1
- A2≡4A3
- ⋮
- A13≡4A12
が成り立ち、この整数列は条件を満たすことが確認できます。
13 1 2
Yes
1 2 4 8 3 6 12 11 9 5 10 7 1
13 9 3
No
13 1 1
No