TopCoder

Thumb hsnu2016
Adrien Wu
$ \begin{align} AC \times 2^9 \\ \text{New TIOJ ?} \end{align} $

User's AC Ratio

83.3% (20/24)

Submission's AC Ratio

57.5% (50/87)

Description

給定$N$,請找出一個$1$到$N$的排列$a_0,a_1,\cdots,a_{N-1}$,使得這個數列的$N$個前綴和(即$a_0,a_0+a_1,a_0+a_1+a_2,\cdots,\sum^ {N-1}_{i=0}a_i$)中恰好有除以$N$餘0、除以$N$餘1、……、除以$N$餘$N-1$的數各一個,或者判斷不存在這樣一個排列。

例如$N=2$,取數列$2,1$,則其兩個前綴和分別為$2,3$,恰好有除以2餘0、除以2餘1的數各一個。

Input Format

輸入只有一個正整數$N$,$N \leq 2\times 10^ 6$。

子任務(測資) 額外限制 分數
1 (0~7) $N \leq 8$ 10
2 (0~11) $N \leq 12$ 10
3 (12~28) $N$為$2$的冪次 10
3 (0~78) 無限制 70

Output Format

若不存在一個滿足題意的排列,輸出一行No
否則,先輸出一行Yes,並在下一行輸出一個滿足題意的排列,數字間以空格隔開。若有多組解,輸出其中一個即可。

Sample Input

#Sample Input 1
1

#Sample Input 2
2

Sample Output

#Sample Output 1
Yes
1

#Sample Output 2
Yes
2 1

Hints

Problem Source

Problem set by skylinebaby
建國中學107學年度校隊選拔:初試pF

Subtasks

For Testdata: 0 ~ 7, Score: 10
For Testdata: 0 ~ 11, Score: 10
For Testdata: 12 ~ 28, Score: 10
For Testdata: 0 ~ 78, Score: 70
No. Time Limit (ms) Memory Limit (KiB) Output Limit (KiB)
0 900 131072 262144
1 900 131072 262144
2 900 131072 262144
3 900 131072 262144
4 900 131072 262144
5 900 131072 262144
6 900 131072 262144
7 900 131072 262144
8 900 131072 262144
9 900 131072 262144
10 900 131072 262144
11 900 131072 262144
12 900 131072 262144
13 900 131072 262144
14 900 131072 262144
15 900 131072 262144
16 900 131072 262144
17 900 131072 262144
18 900 131072 262144
19 900 131072 262144
20 900 131072 262144
21 900 131072 262144
22 900 131072 262144
23 900 131072 262144
24 900 131072 262144
25 900 131072 262144
26 900 131072 262144
27 900 131072 262144
28 900 131072 262144
29 900 131072 262144
30 900 131072 262144
31 900 131072 262144
32 900 131072 262144
33 900 131072 262144
34 900 131072 262144
35 900 131072 262144
36 900 131072 262144
37 900 131072 262144
38 900 131072 262144
39 900 131072 262144
40 900 131072 262144
41 900 131072 262144
42 900 131072 262144
43 900 131072 262144
44 900 131072 262144
45 900 131072 262144
46 900 131072 262144
47 900 131072 262144
48 900 131072 262144
49 900 131072 262144
50 900 131072 262144
51 900 131072 262144
52 900 131072 262144
53 900 131072 262144
54 900 131072 262144
55 900 131072 262144
56 900 131072 262144
57 900 131072 262144
58 900 131072 262144
59 900 131072 262144
60 900 131072 262144
61 900 131072 262144
62 900 131072 262144
63 900 131072 262144
64 900 131072 262144
65 900 131072 262144
66 900 131072 262144
67 900 131072 262144
68 900 131072 262144
69 900 131072 262144
70 900 131072 262144
71 900 131072 262144
72 900 131072 262144
73 900 131072 262144
74 900 131072 262144
75 900 131072 262144
76 900 131072 262144
77 900 131072 262144
78 900 131072 262144