到假日了,瓜瓜到美術館去看藝術作品。瓜瓜發現了一幅很有趣的畫,是由一個山水畫大師所作的畫,根據牌子上的文字說明,裡面有兩座山脈,但是瓜瓜發現他根本分辨不出來兩座山脈的形狀,因此希望你能夠幫他找出來。
根據瓜瓜的仔細觀察以及計算,他已經從左到右把圖畫中山的高度 $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$ 時,也會被視為一個山脈。
第一行輸入一個正整數 $n$,代表圖畫中的山脈共有幾個點。
第二行輸入 $n$ 個正整數 $a_i$,代表山脈上點的高度。
如果不行達成的話,在第一行輸出 "No"
(不含引號)。
如果可以達成的話,在第一行輸出 "Yes"
(不含引號),第二行輸出 $n$ 個編號 $c_i$,$1 \leq c_i \leq 2$,以空格隔開,代表每個點應該被分類在第一座山還是第二座山。
如果有很多種的分類方法的話,可以隨意輸出一種符合條件的分法。
5 1 2 3 4 5
Yes 1 1 1 1 1
8 1 8 4 6 5 7 1 2
Yes 2 2 1 2 1 1 2 1
9 100 24 3188 435 774 1894 64 577 129
Yes 1 2 1 2 2 2 2 1 1
3 1 1 1
No
YTP 2025 高中組程式挑戰營 p15
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~3 | 範例測試資料 | 0 |
2 | 0~51 | $n \leq 2000$ | 8 |
3 | 0~83 | 無額外限制 | 12 |