TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

100.0% (2/2)

Tags

Description

到假日了,瓜瓜到美術館去看藝術作品。瓜瓜發現了一幅很有趣的畫,是由一個山水畫大師所作的畫,根據牌子上的文字說明,裡面有兩座山脈,但是瓜瓜發現他根本分辨不出來兩座山脈的形狀,因此希望你能夠幫他找出來。

根據瓜瓜的仔細觀察以及計算,他已經從左到右把圖畫中山的高度 $a_i$ 都標出來了,你需要把每一個點編號,告訴瓜瓜這是第一座山脈還是第二座山脈的輪廓,或者是發現其實根本沒辦法分辨出兩座山脈 (其實是由更多座山脈組成的),那麼你就要和美術館裡的工作人員說,請他們替換介紹牌子。

山脈定義

若長度為 $L$ 的數列 $h_1,h_2,\dots,h_L$ 滿足:

令 $h_p$ 為數列中的最大值,$p\;(1 \leq p \leq L)$ 為最大值的位置:

$$h_1 < h_2 < \dots < h_{p-1} < h_p > h_{p+1} > \dots > h_L$$

即在 $p$ 之前嚴格單調遞增、在 $p$ 之後嚴格單調遞減,則稱為一座山脈(mountain)。

特別注意,如果當 $L = 0$ 時,也會被視為一個山脈。

Input Format

第一行輸入一個正整數 $n$,代表圖畫中的山脈共有幾個點。

第二行輸入 $n$ 個正整數 $a_i$,代表山脈上點的高度。

  • $1 \leq n \leq 10^ 5$
  • $1 \leq a_i \leq 10^ 9$

Output Format

如果不行達成的話,在第一行輸出 "No" (不含引號)。

如果可以達成的話,在第一行輸出 "Yes" (不含引號),第二行輸出 $n$ 個編號 $c_i$,$1 \leq c_i \leq 2$,以空格隔開,代表每個點應該被分類在第一座山還是第二座山。

如果有很多種的分類方法的話,可以隨意輸出一種符合條件的分法。

Sample Input 1

5
1 2 3 4 5

Sample Output 1

Yes
1 1 1 1 1

Sample Input 2

8
1 8 4 6 5 7 1 2

Sample Output 2

Yes
2 2 1 2 1 1 2 1

Sample Input 3

9
100 24 3188 435 774 1894 64 577 129

Sample Output 3

Yes
1 2 1 2 2 2 2 1 1

Sample Input 4

3
1 1 1

Sample Output 4

No

Hints

Problem Source

YTP 2025 高中組程式挑戰營 p15

Subtasks

No. Testdata Range Constraints Score
1 0~3 範例測試資料 0
2 0~51 $n \leq 2000$ 8
3 0~83 無額外限制 12

Testdata and Limits

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