题目描述
给定素数 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)
输入格式
输入从标准输入读入,格式如下:
P a b
输出格式
如果存在满足条件的整数序列 A,输出 Yes,否则输出 No。如果输出 Yes,第二行输出该整数序列 A 的各个元素,空格分隔。
A1 A2 … AP
如果存在多个满足条件的序列,输出任意一个均可。
样例 1
输入
13 4 5
输出
Yes
1 5 11 3 12 9 7 4 6 8 2 10 1
样例 2
输入
13 1 2
输出
Yes
1 2 4 8 3 6 12 11 9 5 10 7 1
样例 3
输入
13 9 3
输出
No
样例 4
输入
13 1 1
输出
No
说明/提示
数据范围
- 2≤P≤105
- P 是素数
- 1≤a,b≤P−1
样例解释 1
以 P=13 为例,满足以下条件:
- A2≡5A1
- A2≡4A3
- ⋮
- A13≡4A12
可以确认该整数序列满足所有条件。
由 ChatGPT 4.1 翻译