CF1032C Playing Piano
题目描述
小 Paul 想学习弹钢琴。他已经有了一段想要练习的旋律。为简单起见,他用一个按键编号序列 $a_1, a_2, \ldots, a_n$ 来表示这段旋律:数字越大,表示按键越靠近钢琴键盘的右端。
Paul 很聪明,他知道关键在于为每个音符合理地分配手指。如果他选择了不方便的指法,那么他在学习用这些手指弹奏旋律时会浪费很多时间,而且很可能无法成功。
我们用 $1$ 到 $5$ 表示一只手的五个手指。我们称任意一个长度为 $n$ 的手指编号序列 $b_1, \ldots, b_n$ 为一种指法。如果对于所有 $1 \leq i \leq n-1$,下列条件都成立,则称该指法是方便的:
- 如果 $a_i < a_{i+1}$,则 $b_i < b_{i+1}$,否则 Paul 需要把手移开键盘才能弹奏第 $i+1$ 个音符;
- 如果 $a_i > a_{i+1}$,则 $b_i > b_{i+1}$,原因同上;
- 如果 $a_i = a_{i+1}$,则 $b_i \neq b_{i+1}$,因为连续两次用同一个手指弹奏是很愚蠢的。请注意,这里是 $b_i \neq b_{i+1}$,而不是 $=$。
请你给出任意一种方便的指法,或者判断不存在这样的指法。
输入格式
第一行包含一个整数 $n$($1 \le n \le 10^5$),表示音符的数量。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 2 \cdot 10^5$),表示每个音符在键盘上的位置。
输出格式
如果不存在方便的指法,输出 $-1$。否则,输出 $n$ 个用空格分隔的整数 $b_1, b_2, \ldots, b_n$,每个数在 $1$ 到 $5$ 之间,表示一种方便的指法。
说明/提示
第三个样例测试有点像 Reflex 的 "Non stop" 歌曲。
由 ChatGPT 4.1 翻译